Фильтрация систем координат сигнала шумного Sine wave в MATLAB

Этот пример показов, как lowpass фильтровать сигнал с шумом в MATLAB и визуализировать исходные и фильтрованные сигналы с помощью анализатора спектра. Для версии Simulink этого примера смотрите Системы Координат of a Noisy Sine Wave Signal in 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 конечной импульсной характеристики создания фильтра. Установите частоту полосы пропускания равную 5000 Гц, и частоту полосы остановки равную 8000 Гц. Значение неравномерности в полосе пропускания составляет 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'};

Задайте выборки по системам координат

Этот пример использует обработку на основе фрейма, где данные обрабатываются по одной системе координат за раз. Каждая система координат данных содержит последовательные выборки из независимого канала. Основанная на кадрах обработка выгодна для многих приложений обработки сигналов, потому что вы можете обрабатывать несколько выборок сразу. Путем буферизации данных в системы координат и обработки мультисамповых кадров данных, можно улучшить вычислительное время алгоритмов обработки сигналов. Установите количество выборок на систему координат равным 4000.

Sine1.SamplesPerFrame = 4000;
Sine2.SamplesPerFrame = 4000;

Фильтрация сигнала шумного Sine wave

Добавьте средний белый Гауссов шум со стандартным отклонением 0,1 к сумме синусоид. Фильтрация результатов с помощью конечная импульсная характеристика. Во время выполнения симуляции анализатор спектра показывает, что частоты выше 8000 Гц в исходном сигнале ослаблены. Полученный сигнал поддерживает пик на 1 кГц, потому что он падает в полосе пропускания фильтра lowpass.

for i = 1 : 1000
    x = Sine1()+Sine2()+0.1.*randn(Sine1.SamplesPerFrame,1);
    y = FIRLowPass(x);
    SpecAna(x,y);
end
release(SpecAna)

См. также

| | |