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

 
 
> Задача
go2winner
сообщение Apr 11 2016, 10:40
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 19-10-15
Пользователь №: 88 917



Я столкнулся с проблемой. Читая форум понял, что нужно сначала реализовать конкретную задачу в симуляторе, а потом (далеко потом) платами баловаться.
Но вот я никак не могу выбрать задачу себе по силам. Может кто-то может дать задачи с линейным ростом в области ЦОС или близкой тематике???

Пробую сей час фильтр реализовать. Вот начинаю с вымышленного ТЗ.
1) Входные данные с АЦП 16 разрядов доп код. А выходные ? какими должны быть выходные? 32 разряда взять?
2) потом попадаю на вопрос: формат и разрядность промежуточных данных. Беру решаю все в фикс. точкой. Вопрос. Как реализовать данную арифметику? Как выбрать сколько разрядов дробные, сколько целочисленные:?
Вот я выбрал формат для коэффициентов, чтобы максимально точно их описать. в VHDL, да и в матлабе я их представляю знаковыми целочисленными числами.

Тут, как я понимаю идет обычная целочисленная арифметика. Но как восстановить выходные данные....я сам как хочу интерпретирую выходные данные ? или есть некое правило по которому я могу интерпретировать выходные данные (сколько разрядов дробных )?


В общем если есть материал по практическому применению ЦОС, особенно в области прием/передачи сигналов буду рад.
Можно ли следующим шагом задуматься об квадратурном модуляторе MSK?


Как я понимаю сначала надо реализовать все в прикладных пакетах (матлаб и т.п.), потом уже на VHDL, потом уже модель VHDL проверяю.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tausinov
сообщение Apr 12 2016, 16:30
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 19-10-13
Пользователь №: 78 795



вот скриптик для наглядности

Код
close all
clear
clc

IR          = [-0.0099    0.0787    0.1166    0.1647    0.1946 ...  
                0.1946    0.1647    0.1166    0.0787   -0.0099];

% fvtool(IR) - удобный вариант для просмотра ИХ

Fs          = 120e6;
F0          = 0e6;  % исходная частота
step        = 1e6;
freq_num    = 10;
N           = 1e4;
A           = 2^15 - 1;

F_vect      = F0 : step : F0 + step * (freq_num - 1);
signal_matr = zeros(freq_num, N);

for i = 1:freq_num
    % формируем исходные сигналы и
    signal_matr(i, :) = round(A*cos(2*pi*(F_vect(i)/Fs)*(1:N)));
    % смотрим их спектр, нажимая пробел
%     fft_plot(signal_matr(i, :), Fs, 'db')
%     pause
end;

res_sig     = sum(signal_matr);
% fft_plot(res_sig, Fs, 'db')

filter_out  = upfirdn(res_sig, IR, 1, 1);
% filter_out  = filter(res_sig, 1, IR);

fft_plot(filter_out, Fs, 'db') % видно затухание по мере удаления от постоянной составляющей
%и оно совпадает с fvtool


Код
function [] = fft_plot(signal, Fs, mode)
    N       = length(signal);
    win     = hanning(length(signal));
    signal  = signal.*win.';
    if mod(N,2) == 1
        f = ((0:N-1) - floor(N/2))/N*Fs;
    else
        f = ((0:N-1) - N/2)/N*Fs;
    end;
    Y       = fftshift(fft(signal,length(signal)));
    Y_ampl  = 2*abs(Y)./N;
    Y_db    = 20*log10(abs(Y));
    if (strcmp(mode, 'db'))
        plot(f, Y_db - max(Y_db))
%         plot(f, Y_db)
        set(gca,'XLim',[min(f), max(f)])
        xlabel('Frequency (Hz)')
        ylabel('dB')
        title('20*log10(|Y|)')
    else
        plot(f, Y_ampl)
        set(gca,'XLim',[min(f), max(f)])
        xlabel('Frequency (Hz)')
        title('Amplitude')
    end;
end


В этой же папке надо поместить эту функцию.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- go2winner   Задача   Apr 11 2016, 10:40
- - des00   Matlab -> Simulink -> simple QPSK modem (fil...   Apr 11 2016, 10:58
|- - Maverick   дополню des00 раздел HDL здесь можно найти готовы...   Apr 11 2016, 11:36
- - Vascom   И делай всё в целых числах, не нужны тут дробные ч...   Apr 11 2016, 13:52
- - bogaev_roman   Цитата(go2winner @ Apr 11 2016, 13:40) В ...   Apr 11 2016, 14:10
- - go2winner   Немного не в тему(мой сл. вопрос).....но все же. В...   Apr 12 2016, 13:15
- - Vascom   Без комментариев к картинкам - ни чего не понятно....   Apr 12 2016, 13:42
|- - Maverick   Цитата(Tausinov @ Apr 12 2016, 19:30) Ц...   Apr 12 2016, 18:20
- - Xln   To go2winner. То, что вы начали изучение ЦОС в FP...   Apr 12 2016, 23:52
- - go2winner   Графики и пояснения исправлю завтра и коды прикреп...   Apr 13 2016, 13:07
- - go2winner   Проблема оказалась в том, что коэффициенты как-то ...   Apr 14 2016, 09:17
- - Koluchiy   Полуофф. А почему ПЛИСы? А не ЦСП.   Apr 14 2016, 12:27
|- - agregat   Цитата(Koluchiy @ Apr 14 2016, 15:27) А н...   Apr 15 2016, 05:52
- - Xln   ЦитатаПроблема оказалась в том, что коэффициенты к...   Apr 14 2016, 22:29


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 21:44
Рейтинг@Mail.ru


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