www.gusucode.com > dsp 案例源码程序 matlab代码 > dsp/LowpassFilterASinusoidSignalUsingFIRFilterObjectExample.m
%% Lowpass Filter a Sinusoid Signal Using FIRFilter object % Use an FIR filter to apply a low pass filter to a waveform with two % sinusoidal components. t = (0:1000)'/8e3; xin = sin(2*pi*0.3e3*t)+sin(2*pi*3e3*t); hSR = dsp.SignalSource; hSR.Signal = xin; hLog = dsp.SignalSink; hFIR = dsp.FIRFilter; hFIR.Numerator = fir1(10,0.5); h = dsp.SpectrumAnalyzer('SampleRate',8e3,... 'PlotAsTwoSidedSpectrum',false,... 'OverlapPercent', 80, 'PowerUnits','dBW',... 'YLimits', [-150 -10]); while ~isDone(hSR) input = hSR(); filteredOutput = hFIR(input); hLog(filteredOutput); h(filteredOutput) end filteredResult = hLog.Buffer; fvtool(hFIR,'Fs',8000) %% % Design an FIR filter as a System object. N = 10; Fc = 0.4; B = fir1(N,Fc); Hf1 = dsp.FIRFilter('Numerator',B); fvtool(Hf1) %% % This can also be achieved by using |fdesign| as a constructor and % |design| to design the filter. N = 10; Fc = 0.4; Hf = fdesign.lowpass('N,Fc',N,Fc); D = design(Hf,'systemobject',true) fvtool(D);