реклама на сайте
подробности

 
 
> Артефакты в сигнале при децимации
alexkis
сообщение Aug 6 2018, 10:50
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 9-12-16
Пользователь №: 94 570



Добрый день! Есть проект в котором необходимо произвести децимацию сигнала вплоть до 16000. Столкнулся с тем что с определенного момента вижу артефакты в сигнале, хочу понять откуда они / их природу и можно ли с этим что-нибудь сделать. Объясню подробнее на упрощенном примере:

Есть необходимость децимировать сигнал с частотой дискретизации 96 МГц в 2^11 раз. Т.е. необходимо 11 фильтров с фактором децимации 2 (для того чтобы можно было посмотреть где начинают появляться артефакты).
Вход - 16 бит, внутренняя разрядность между каскадами - 18, коэффициенты фильтров - 18, выход каскада - 16. Так же производится скалирование между каскадами (усиление сигнала сдвигом к младшим разрядам выхода фильтра при усечении, при этом откидываются дублирующие знаковые биты).
Matlab модель каскада: Прикрепленный файл  df_2_firs.zip ( 1.97 килобайт ) Кол-во скачиваний: 14


Спектр входного сигнала (16 бит):
Прикрепленное изображение


При этом наблюдаю некоторые артефакты / составляющие в сигнале которых не ожидаю на выходе каскада (выход 16 бит)
Прикрепленное изображение

Под артефактами я имею ввиду этот "лес палок" над шумом. Уровень палок меняется.

Если выход сделать 18 бит, то спектр будет похож на то что ожидаю увидеть:
Прикрепленное изображение


При этом эти артефакты появляются начиная с 9 фильтра (в 16 битном представлении выхода), выходы фильтров 8 и 9 соответственно:
Прикрепленное изображение

Прикрепленное изображение


Так же собрал проект в железе с этими фильтрами на ядрах Xilinx (+ добавил DDС на входе). В качестве округления при переходе между фильтрами каскада использовал округление к ближайшему целому (когда добавляется старший из отбрасываемых разрядов, модель я смотрел и с таким округлением, по сути ничего не меняется).
При подаче мощного сигнала (5 дБм) с генератора, на выходе каскада, подстраиваясь скейлерами получаю следующий сигнал (16 бит):
Прикрепленное изображение

Т.е. сигнал такой каким я его ожидаю, но если не изменяя скейлеров уйти ниже по мощности (например с 5 дБм на -50 дБм на генераторе):
Прикрепленное изображение

Правда тут артефакты начинают появляться начиная с 8 фильтра.

При этом этот же сигнал в представлении 18 бит выглядит ожидаемо:

Прикрепленное изображение


Еще вопрос в том почему здесь палки похоже что стоят на тех же частотах, но не статичны и, судя по всему, перемещаются по частотам?
Прикрепленное изображение


Структурная схема каскада в железе:
Прикрепленное изображение


PS: если в модели подавать на вход не зашумленный сигнал, то эти палки будет отлично видно (16-битный выход последнего (11) фильтра в каскаде):
Прикрепленное изображение

Получается что это спуры от синусоиды, которые частично закрывает шум?
Если смотреть на выход предпоследнего фильтра (10) в 16 битном виде:

Прикрепленное изображение

Получается что они идут не со входа? Если построить спектр синусоиды (той же частоты что и на входе каскада и с частотой сэмплирования выхода фильтра) без awgn, то получится примерно такая же картина по спурам как и на выходах фильтров:
Код
Fs = 96e+6/2^11;
N = 2^14;
Fc = 15e+3;

t = 0:1/Fs:(N - 1)/Fs;
sig = complex(cos(2*pi*Fc*t), sin(2*pi*Fc*t)).';
% sig = awgn(sig, 65);
sig = sig / max(max(abs(real(sig))), max(abs(imag(sig))));
sig = round(sig * (2^(16 - 1) - 1));

data = sig;
figure(4); periodogram(data, blackmanharris(size(data, 1)), 'centered', 2^(nextpow2(size(data, 1))+1), Fs);


Прикрепленное изображение


Надеюсь Вы прольете мне свет на этот вопрос.
Спасибо!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 11:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01454 секунд с 7
ELECTRONIX ©2004-2016