Отфильтруйте кадры зашумленного синусоидального сигнала в MATLAB

В этом примере показано, как к 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

КИХ-фильтр 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)

Смотрите также

| | |