Отфильтруйте кадры зашумленного синусоидального сигнала в 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','Low pass 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)

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

| | |