|
попытка создания спектроанализатора, XC3S250E-208 и ТФТ 480х234 |
|
|
|
Dec 29 2012, 21:32
|

Знающий
   
Группа: Свой
Сообщений: 507
Регистрация: 15-04-06
Из: Германия
Пользователь №: 16 143

|
Привет народ. Вот вымучил ФФТ на корке , получилось что-то похожее на спектр. Во всяком случае на изменение частоты реагирует переползанием пиков сигнала по экрану. Только вот никак не соображу, как сделать так, чтобы пики сигнала располагались только сверху, а не вращались как умалишённые вверх-вниз. http://www.youtube.com/watch?v=Vy1yDr5oZU8...eature=youtu.beприлагаю куски кода по частям. 1. корка ФФТ в ИЗЕ Код reg [8:0]xn_re; always @ (posedge CLK_A) xn_re <= signal;
FFT FFT_A ( .clk(CLK_A), // input clk .start(1), // input start .unload(1), // input unload .xn_re(xn_re[8:0]), // input [8 : 0] xn_re min+max .xn_im(0), // input [8 : 0] xn_im .fwd_inv(1), // input fwd_inv .fwd_inv_we(1), // input fwd_inv_we .rfd(rfd), // output rfd .busy(busy), // output busy .dv(dv), // output dv .xk_re(xk_re), // output [8 : 0] xk_re .xk_im(xk_im) // output [8 : 0] xk_im ); далее блок математики , в котором сигналы с ФФТ обрабатываются и выводятся далее на экран Код wire [8:0]out_math; math math (// математика .clk(CLK_A), .dv(dv), .real_(xk_re), .imaginary(xk_im), .out_(out_math) ); и собственно сама математика Код module math ( input clk, input dv, input [7:0]real_, input [7:0]imaginary, output reg[9:0]out_ ); wire [15:0] real_re; wire [15:0] imaginary_; //модуль комплексного числа. multiplexor m_re ( .clk(clk), // input clk .a(real_), // input [7 : 0] a .b(real_), // input [7 : 0] b .ce(dv), .p(real_re) // output [15 : 0] p ); multiplexor m_im ( .clk(clk), // input clk .a(imaginary), // input [7 : 0] a .b(imaginary), // input [7 : 0] b .ce(dv), .p(imaginary_) // output [15 : 0] p ); reg [16:0] summe; always @ (posedge clk) begin summe <= real_re[15:0] + imaginary_[15:0]; end wire [8:0]out_m; sqrt sqrt ( .clk(clk), // input clk .ce(dv), .x_in(summe), // input [15 : 0] x_in .x_out(out_m) // output [8 : 0] x_out ); //------------------------ ищем max ---------------------------------- wire [8:0] max = (dv == 1'b1) ? 1'b1: (( max < out_m ) ? out_m : 1'b1); //----------------------- нормировка по max wire [8:0] max_2; divider d_max ( .clk(clk), // input clk .ce(dv), // input ce .dividend(max), // input [8 : 0] dividend .divisor(2), // input [8 : 0] divisor .fractional(max_2) // output[8 : 0] fractional ); wire [8:0] res; divider d_res ( .clk(clk), // input clk .ce(dv), // input ce .dividend(out_m),// input [8 : 0] dividend .divisor(max_2), // input [8 : 0] divisor .fractional(res) // output[8 : 0] fractional );
always @ (posedge clk) begin out_ <= res[7:0] - 118;//двигаем по высоте. меньше - выше end
endmodule поскажите, что надо сделать, чтобы устранить это вращение.Спасибо заранее и всех с наступающим Новым годом !
--------------------
|
|
|
|
|
 |
Ответов
|
Jan 2 2013, 07:40
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Входную часть я бы делал примерно так:
Грубый/тонкий регуляторы смещения объединёны и регулятор упрощён с учётом того, что ОУ имеет по входу не меньший размах, чем по выходу, поэтому может использоваться в качестве буфера. Вход получится стандартный под осциллографический щуп с делителем. На схеме от andreichk ассиметрично включён драйвер АЦП, так он не будет держать постоянное синфазное напряжение. И ещё, резисторы регулятора усиления выбраны очень странно, которые с малыми номиналами, если вспомнить, чему равно усиление такой схемы. А триггерную схему можно вообще сделать в цифре, или подключать к выходу IC2, чтобы не грузить высокоомный вход. UPD:По драйверу АЦП возражение снимаю, его можно и так включать. И тонкое смещение действительно имеет смысл ставить после усилителя, чтобы его регулировка не зависела от коэффициента усиления.
Сообщение отредактировал Timmy - Jan 2 2013, 12:38
|
|
|
|
Сообщений в этой теме
andreichk попытка создания спектроанализатора Dec 29 2012, 21:32 Xenia Действительную и мнимую части надо не суммировать ... Dec 29 2012, 22:06 andreichk а вы разве не заметили? вот извлечение кв.корня из... Dec 29 2012, 22:15 Xenia Цитата(andreichk @ Dec 30 2012, 02:15) а ... Dec 29 2012, 22:36 andreichk Простите, я по ходу вас неверно понял. Вы хотели с... Dec 29 2012, 22:44 Xenia Цитата(andreichk @ Dec 30 2012, 02:44) Пр... Dec 29 2012, 22:50 andreichk блин, как это я проглядел? теперь я на распутье ил... Dec 29 2012, 22:56 Xenia Цитата(andreichk @ Dec 30 2012, 02:56) бл... Dec 29 2012, 23:08 andreichk вымучил наконец Dec 30 2012, 02:18 RobFPGA Приветствую!
Вы вобще то не сосвсем коректно ... Dec 30 2012, 12:40 andreichk в последней интерпретации я вообще исключил извлеч... Dec 30 2012, 17:25 Lmx2315 QUOTE (andreichk @ Dec 30 2012, 21:25) Хо... Dec 30 2012, 17:47  andreichk Цитата(Lmx2315 @ Dec 30 2012, 18:47) ..не... Dec 30 2012, 18:01   Lmx2315 QUOTE (andreichk @ Dec 30 2012, 22:01) сп... Dec 30 2012, 18:08  Flood Цитата(Lmx2315 @ Dec 30 2012, 21:47) ..не... Dec 30 2012, 21:36 MaverickDSP Цитата(andreichk @ Dec 30 2012, 20:25) пр... Jan 10 2013, 12:32  andreichk Цитата(MaverickDSP @ Jan 10 2013, 13:32) ... Feb 2 2013, 09:53 andreichk RROR:HDLCompilers:87 - "math.v" line 86 ... Dec 30 2012, 18:09 Lmx2315 QUOTE (andreichk @ Dec 30 2012, 22:09) RR... Dec 30 2012, 19:19 compoa Цитата(andreichk @ Dec 30 2012, 22:09) RR... May 23 2013, 04:11 andreichk будем считать это новогодней шюткой Dec 30 2012, 21:50 novchok Мне просто интересно, а как сигнал вводится в сист... Jan 1 2013, 15:11 andreichk да вот собственно входная часть, никаких спецфильт... Jan 1 2013, 16:41 Uuftc Цитата(andreichk @ Jan 1 2013, 20:41) да ... Jan 10 2013, 15:14 novchok Спасибо, схема интересная, единственное, чего могу... Jan 1 2013, 18:28 Aner Если счетные ресурсы есть, то фильтровать по анало... Jan 10 2013, 18:31 Uuftc Цитата(Aner @ Jan 10 2013, 22:31) Если сч... Jan 10 2013, 19:20  Victor® Цитата(Uuftc @ Jan 10 2013, 23:20) Очень ... Feb 2 2013, 16:14 andreichk Народ, для загрузки скопа в припаянную к спартану ... Feb 4 2013, 13:04 a123-flex Цитата(andreichk @ Feb 4 2013, 16:04) Нар... Feb 4 2013, 14:01 Kuzmi4 2 andreichk
Глянул одним глазом на проект - сложил... Feb 4 2013, 14:18 andreichk немного поковыряли сами и обнаружили следующее:
пе... Feb 4 2013, 15:09 andreichk проблема решена заменой кварца на на 60 МГц. перес... Feb 5 2013, 16:30 andreichk мне кажется , что я уже писал, что не занимаюсь да... May 25 2013, 11:49 compoa Цитата(andreichk @ May 25 2013, 15:49) мн... May 26 2013, 12:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|