В этом примере показано, как к lowpass фильтруют сигнал с шумом в MATLAB® и визуализируют исходные и отфильтрованные сигналы с помощью спектра анализатор. Для версии Simulink® этого примера смотрите Системы координат Фильтра Шумного Синусоидального сигнала в Simulink.
Входной сигнал является суммой двух синусоид с частотами 1 кГц и 10 кГц. Частота дискретизации составляет 44,1 кГц.
Sine1 = dsp.SineWave('Frequency',1e3,'SampleRate',44.1e3); Sine2 = dsp.SineWave('Frequency',10e3,'SampleRate',44.1e3);
КИХ-фильтр lowpass, dsp.LowpassFilter
, проектирует КИХ минимального порядка фильтр lowpass с помощью обобщенного КИХ-алгоритма создания фильтра Remez. Установите частоту полосы пропускания на 5 000 Гц и частоту полосы задерживания к 8 000 Гц. Неравномерность в полосе пропускания составляет 0,1 дБ, и затухание в полосе задерживания составляет 80 дБ.
FIRLowPass = dsp.LowpassFilter('PassbandFrequency',5000,... 'StopbandFrequency',8000);
Настройте спектр анализатор, чтобы сравнить спектры мощности исходных и отфильтрованных сигналов. Модули спектра являются dBm.
SpecAna = dsp.SpectrumAnalyzer('PlotAsTwoSidedSpectrum',false,... 'SampleRate',Sine1.SampleRate,... 'NumInputPorts',2,... 'ShowLegend',true, ... 'YLimits',[-145,45]); SpecAna.ChannelNames = {'Original noisy signal',... 'Lowpass filtered signal'};
Этот пример использует основанную на системе координат обработку, где данные обрабатываются один кадр за один раз. Каждая система координат данных содержит последовательные выборки от независимого канала. Основанная на системе координат обработка выгодна для многих приложений обработки сигналов, потому что можно обработать несколько выборок целиком. Путем буферизации данных в системы координат и обработки мультидемонстрационных кадров данных, можно улучшить вычислительное время алгоритмов обработки сигналов. Установите количество отсчетов на систему координат к 4 000.
Sine1.SamplesPerFrame = 4000; Sine2.SamplesPerFrame = 4000;
Добавьте нулевой средний белый Гауссов шум со стандартным отклонением 0,1 к сумме синусоид. Отфильтруйте результат с помощью КИХ-фильтра. При выполнении симуляции спектр анализатор показывает, что частоты выше 8 000 Гц в исходном сигнале ослабляются. Получившийся сигнал обеспечивает пик на уровне 1 кГц, потому что это падает в полосе пропускания фильтра lowpass.
for i = 1 : 1000 x = Sine1()+Sine2()+0.1.*randn(Sine1.SamplesPerFrame,1); y = FIRLowPass(x); SpecAna(x,y); end release(SpecAna)
Создание фильтра lowpass в MATLAB | Отфильтруйте системы координат шумного синусоидального сигнала в Simulink | Введение в потоковую передачу обработки сигналов в MATLAB | Многоскоростной просачивающийся MATLAB и Simulink