% Signal parameters: f = [ 440 880 1000 2000 ]; % frequencies M = 256; % signal length Fs = 5000; % sampling rate
% Generate a signal by adding up sinusoids: x = zeros(1,M); % pre-allocate 'accumulator' n = 0:(M-1); % discrete-time grid for fk = f; x = x + sin(2*pi*n*fk/Fs); end % Filter parameters: L = 257; % filter length fc = 600; % cutoff frequency
% Design the filter using the window method: hsupp = (-(L-1)/2:(L-1)/2); hideal = (2*fc/Fs)*sinc(2*fc*hsupp/Fs); h = hamming(L)' .* hideal; % h is our filter
% Choose the next power of 2 greater than L+M-1 Nfft = 2^nextpow2(L+M-1); % Zero pad the signal and impulse response: xzp = [ x zeros(1,Nfft-M) ]; hzp = [ h zeros(1,Nfft-L) ];
X = fft(xzp); % signal H = fft(hzp); % filter Y = X .* H; y = ifft(Y); relrmserr=norm(imag(y))/norm(y) % check... should be zero y = real(y); subplot(2,1,1), plot(x) subplot(2,1,2), plot(y) grid on
my low pass filter works but I don't want to use hamming, fft and ifft. Instead of these I want to use hamming, fft, ifft functions. I found some codes about them but it didn't work. Could you help me please?
No products are associated with this question.
Play games and win prizes!Learn more