Фильтр найквиста.

ЦОС, обработка видео и изображений в MATLAB\Simulink

Модератор: Admin

Dikiton1993
Пользователь
Сообщения: 22
Зарегистрирован: Сб июн 03, 2017 5:12 pm

Фильтр найквиста.

Сообщение Dikiton1993 » Вс сен 10, 2017 7:41 pm

Добрый вечер.
Вопрос в следующем для демодуляции сигнала BPSK хочу использовать фильтр Найквиста.
описание статьи:
http://www.dsplib.ru/content/isi/isi.html
Вопрос в следующем какую функцию использовать в матлаб, что бы реализовать данный фильтр.
Я думал использовать функцю filter, но никак не пойму как записать использовать функцию filter, для того что бы фильтр был с заданной ИХ.
ИХ:
https://yadi.sk/i/KWG89RaY3MmGqU
Заранее большое спасибо.
С уважением Сергей Иванов

sandy
Эксперт
Сообщения: 5273
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Фильтр найквиста.

Сообщение sandy » Вс сен 10, 2017 10:44 pm

См. функцию rcosdesign
С уважением

Александр Сергиенко

Dikiton1993
Пользователь
Сообщения: 22
Зарегистрирован: Сб июн 03, 2017 5:12 pm

Re: Фильтр найквиста.

Сообщение Dikiton1993 » Вс сен 17, 2017 1:01 pm

Добрый день, попробовал использовать функцию rcosdesign.
Получил следующие результаты:
https://yadi.sk/i/-Sb_501Y3MxDkF
У меня возникает вопрос в чем ошибка, я точно знаю, что сигнал BPSK, а на созвездии выдает конструкцию ФМ4, может кто сталкивался с подобной проблемой?
Еще один момент при расчете фильтра аргументом

Код: Выделить всё

rrcFilter= rcosdesign(0.5, 1,step);
, которой у меня является step (длительность символа) равна 18,350 , но аргументы функции rcosdesign только целочисленные поэтому для округления я использую функцию round, и округляется step до 18, возможна с этим связана ошибка демодуляции.
Вот исходный код:

Код: Выделить всё

[Y,FS,BITS] = wavread('C:\101.wav');
 Ts=1/FS;
Td=1/Fd(1);
span=Fd(1);
sps=FS;
step=round(Td/Ts);

rrcFilter= rcosdesign(0.5, 1,step);

fvtool(rrcFilter,'Analysis','impulse')

txSig =upfirdn(hilbert(Y), rrcFilter, step);

rxFilt = upfirdn(txSig, rrcFilter, 1, step);

rxFilt = rxFilt(span+1:end-span);


hold on
scatterplot(rxFilt(1:8000),1,0,'kx')
title('Received')
legend ('before', 'after')
axis ([-3 3 -3 3])
hold off

N = round(length(Y)/FS);             
t = 0:1:N-1;                 %количество отсчетов

figure;
plot(t,txSig);title('Output signal');

Dikiton1993
Пользователь
Сообщения: 22
Зарегистрирован: Сб июн 03, 2017 5:12 pm

Re: Фильтр найквиста.

Сообщение Dikiton1993 » Вс сен 17, 2017 1:02 pm

Заранее большое спасибо
С уважением Сергей Иванов

sandy
Эксперт
Сообщения: 5273
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Фильтр найквиста.

Сообщение sandy » Вс сен 17, 2017 8:19 pm

1. Параметр span при расчете фильтра не должен быть равен единице. Для коэффициента сглаживания 0.5 нужно задавать хотя бы 6.
2. Параметр step (sps в описании функции rcosdesign) - это число отсчетов на символ, оно может быть только целочисленным. Поэтому перед демодуляцией сигнала вы должны провести его передискретизацию, чтобы частота дискретизации была в целое число раз больше символьной скорости.
3. Вы вообще делаете что-то странное - получаете из входного сигнала аналитический сигнал функцией hilbert, потом выполняете его интерполяцию, повышая частоту дискретизации в step раз, а потом понижаете ее до прежнего значения. Демодуляция в результате уж точно не получится. Если в вашем wave-файле содержится сигнал с модуляцией ФМ-2 на некоторой несущей частоте, последовательность действий примерно следующая:
- умножаете сигнал на колебание с несущей частотой
- пропускаете сигнал через рассчитанный фильтр
- каким-то образом реализуете временную синхронизацию и определяете, как именно (начиная с какого места) нужно выбрать отсчеты с шагом sps (step в вашем коде)
- реализуете фазовую синхронизацию, чтобы поставить принятое созвездие в нужное угловое положение
С уважением



Александр Сергиенко

Dikiton1993
Пользователь
Сообщения: 22
Зарегистрирован: Сб июн 03, 2017 5:12 pm

Re: Фильтр найквиста.

Сообщение Dikiton1993 » Ср сен 20, 2017 11:06 am

А не подскажете какой функцией можно передескритезировать wave файл, я смотрел resample, но она я так понял для массивов?
Заранее большое спасибо
С уважением Сергей Иванов

sandy
Эксперт
Сообщения: 5273
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Фильтр найквиста.

Сообщение sandy » Ср сен 20, 2017 6:50 pm

я смотрел resample, но она я так понял для массивов?

А что, из wav-файла вы разве не массив считываете?
С уважением



Александр Сергиенко