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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> генератор синуса в плис
blackfin
сообщение Jul 11 2015, 08:02
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 567
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(sergey sva @ Jul 11 2015, 09:18) *
sm.gif верно сказано.

Ага. Осталось провести верные параллели..

Вот если в процессе разработки лазерного дальномера вы удосужились прочитать пару-тройку серьезных учебников по радиолокации вообще и по лазерной локации в частности, то польза от такой разработки несомненно есть. Если же эти учебники не изучены "от корки и до корки", то эта ваша разработка лазерного дальномера и есть "пустая забава"..

Как-то так..
Go to the top of the page
 
+Quote Post
dde29
сообщение Jul 11 2015, 09:53
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 12-08-08
Из: Томск
Пользователь №: 39 559



http://kit-e.ru/assets/files/pdf/2011_12_36.pdf
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jul 11 2015, 10:25
Сообщение #18


отэц
*****

Группа: Свой
Сообщений: 1 422
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(blackfin @ Jul 11 2015, 12:02) *
Как-то так..

..хотите сказать, что если сделать лазерный дальномер не читая книжек про него - то пользы не будет?
з.ы.
бедные изобретатели лазерных дальномеров и радиолокации в общем.


--------------------
"..не нравятся мои выборы? ..приходите в мой суд."
Узурпатор П.
Go to the top of the page
 
+Quote Post
bugdesigner
сообщение Jul 11 2015, 14:48
Сообщение #19


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

Группа: Участник
Сообщений: 119
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133



Теперь совсем все запуталась. Не пойму смысла генерации синуса.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jul 13 2015, 07:17
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 537
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Да вы правы нет смысла получать синус из зашумленного сигнала. Шум немного снизил теперь меньше 1 мкс, но результат по абсолютной точности не очень. Проблеме в алгоритме измерения фазы (фазовый детектор).
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jul 17 2015, 07:53
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 537
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



В квартусе мегавизарт есть элементы NCO Cordic их можно добавить в проект ошибок нет а какая у них лицензия может час поработает и перестанет )) что то найти не смог. Квартус у меня web pack 13.1
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 17 2015, 09:22
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 4 014
Регистрация: 17-02-06
Пользователь №: 14 454



обычно если она платная и лимитированная об этом большими буквами сообщают.

SIN и по таблице можно, только какой смысл?

переводя 2 ваших квадратных сигнала в синус, вы не добавляете информации в систему, вы ее только преобразовываете. Потому и получить что-то дополнительное таким образом вы не сможете.

если бы вы модулировали лазер в синус, а потом цифровали бы его на обратному пути, то вместо 0-1 вы бы получили гораздо больше уровней, и это имело бы смысл, а так...
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jul 17 2015, 10:25
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 537
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Расстояние будет измерять это уже почти сделал )). Это просто мысль возникла. Луч все равно модулируется можно попробовать канал связи пустить параллельно измерению расстояния на световозвращаюшую пленку наклеить жк пленку или световозвращающую пленку наклеить на пьезокерамику. И рядом с пленкой поставить фотодиод. получиться измеритель и канал связи. Удобно будет управлять механизмами на расстоянии.
Go to the top of the page
 
+Quote Post
EvgenyNik
сообщение Jul 17 2015, 11:07
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402



Цитата(Golikov A. @ Jul 17 2015, 13:22) *
переводя 2 ваших квадратных сигнала в синус, вы не добавляете информации в систему, вы ее только преобразовываете. Потому и получить что-то дополнительное таким образом вы не сможете.
Более того, меандр уже содержит синус, как основную гармонику, и если уж очень хочется, то преобразование реализуется просто фильтрацией высших гармоник.
Чем хорош подлинный аналоговый синус - тем, что при оцифровке совокупность из любых его трёх последовательных выборок несёт информацию о частоте и фазе. В данном случае интересна именно фаза.
Чем плох цифровой синус, полученный (любым способом) из дискретного сигнала - тем, что даже небольшие гистерезис во входном преобразователе, джиттер и т.п. существенно сказываются на определении фазы на конкретном периоде. А поскольку у меандра весовых коэффициентов амплитуды всего два: +1 и -1 (ну или 1 и 0, если угодно), то даже перемножение на sin, cos-коэффициенты при преобразовании Фурье не дают такой же степени точности, как при подобной же обработке синусоидального сигнала. Даже если мы отфильтруем меандр до чистой синусоиды, то параметры этой синусоиды вберут в себя "огрехи" меандра и по сути ничего не изменится.
Раз уж имеем дело сразу с дискретным сигналом, то и обрабатывать его логично как дискретный сигнал, а потом данные усреднять. ИМХО всё, конечно.


--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
Go to the top of the page
 
+Quote Post
Мур
сообщение Mar 13 2017, 15:58
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 655
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



...Ну а если для тестбенча?...
Сам зашумлю уже генератором случайных чисел.
У кого в загашнике есть блочок для теста?(не для синтеза)
Хотя бы 12 разрядов... Да и на 8 соглашусь!
Go to the top of the page
 
+Quote Post
blackfin
сообщение Mar 13 2017, 16:42
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 567
Регистрация: 18-04-05
Пользователь №: 4 261



Для тестбенча можно $sin(x), $cos(x).
Go to the top of the page
 
+Quote Post
Maverick
сообщение Mar 13 2017, 19:57
Сообщение #27


я только учусь...
******

Группа: Модераторы
Сообщений: 3 233
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839




вот например можно и для синтеза
CODE

-- Module Name: sine_table - Behavioral
-- Description: A lookup table with interpolation for sin(x) function
--
-- To help with the coding, this actually returns sin(x+2*pi/8192)
-- subtract 0x70 from 'pahse' to keep the zero crossing at zero.
----------------------------------------------------------------------------------

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.NUMERIC_STD.ALL;

entity sine_table is
Port ( clk : in STD_LOGIC;
phase : in STD_LOGIC_VECTOR (17 downto 0);
sine : out STD_LOGIC_VECTOR (19 downto 0));
end sine_table;

architecture Behavioral of sine_table is
signal sine_sum : unsigned(9+phase'high downto 0) := (others => '0');

signal sine_mult_1 : unsigned(9+phase'high downto 0) := (others => '0');
signal frac_1 : unsigned(phase'high-11 downto 0) := (others => '0');
signal sine_1 : unsigned(19 downto 0) := (others => '0');
signal index_1 : unsigned(11 downto 0) := (others => '0');
signal quad_1 : unsigned( 1 downto 0) := (others => '0');
signal entry_1 : unsigned( 9 downto 0) := (others => '0');

signal sine_mult_2 : unsigned(9+phase'high downto 0) := (others => '0');
signal frac_2 : unsigned(phase'high-11 downto 0) := (others => '0');
signal sine_2 : unsigned(19 downto 0) := (others => '0');
signal quad_2 : unsigned(1 downto 0) := (others => '0');
signal entry_2 : unsigned(9 downto 0) := (others => '0');
signal index_2 : unsigned(11 downto 0) := (others => '0');

signal frac : unsigned(phase'high-12 downto 0);

constant frac_max : unsigned(phase'high-11 downto 0) := (phase'high-11 => '1', others => '0');
constant table_max : unsigned(9 downto 0) := (others => '1');
constant midrange : unsigned(19 downto 0) := x"80000";

type a_mem is array (0 to 1023) of unsigned (19 downto 0);
signal mem : a_mem := (
x"000C9", x"0025B", x"003ED", x"0057F", x"00711", x"008A3", x"00A35", x"00BC7",
x"00D59", x"00EEC", x"0107E", x"01210", x"013A2", x"01534", x"016C6", x"01858",
x"019EA", x"01B7C", x"01D0E", x"01EA0", x"02032", x"021C4", x"02355", x"024E7",
x"02679", x"0280B", x"0299D", x"02B2F", x"02CC0", x"02E52", x"02FE4", x"03175",
x"03307", x"03499", x"0362A", x"037BC", x"0394D", x"03ADF", x"03C70", x"03E02",
x"03F93", x"04124", x"042B6", x"04447", x"045D8", x"04769", x"048FA", x"04A8B",
x"04C1C", x"04DAD", x"04F3E", x"050CF", x"05260", x"053F1", x"05582", x"05712",
x"058A3", x"05A34", x"05BC4", x"05D55", x"05EE5", x"06075", x"06206", x"06396",
x"06526", x"066B6", x"06846", x"069D6", x"06B66", x"06CF6", x"06E86", x"07016",
x"071A5", x"07335", x"074C5", x"07654", x"077E3", x"07973", x"07B02", x"07C91",
x"07E20", x"07FAF", x"0813E", x"082CD", x"0845C", x"085EB", x"08779", x"08908",
x"08A96", x"08C25", x"08DB3", x"08F41", x"090CF", x"0925D", x"093EB", x"09579",
x"09707", x"09894", x"09A22", x"09BB0", x"09D3D", x"09ECA", x"0A057", x"0A1E5",
x"0A372", x"0A4FF", x"0A68B", x"0A818", x"0A9A5", x"0AB31", x"0ACBE", x"0AE4A",
x"0AFD6", x"0B162", x"0B2EE", x"0B47A", x"0B606", x"0B792", x"0B91D", x"0BAA9",
x"0BC34", x"0BDBF", x"0BF4A", x"0C0D5", x"0C260", x"0C3EB", x"0C575", x"0C700",
x"0C88A", x"0CA15", x"0CB9F", x"0CD29", x"0CEB3", x"0D03C", x"0D1C6", x"0D350",
x"0D4D9", x"0D662", x"0D7EC", x"0D975", x"0DAFD", x"0DC86", x"0DE0F", x"0DF97",
x"0E120", x"0E2A8", x"0E430", x"0E5B8", x"0E740", x"0E8C7", x"0EA4F", x"0EBD6",
x"0ED5D", x"0EEE5", x"0F06C", x"0F1F2", x"0F379", x"0F500", x"0F686", x"0F80C",
x"0F992", x"0FB18", x"0FC9E", x"0FE24", x"0FFA9", x"1012E", x"102B3", x"10438",
x"105BD", x"10742", x"108C6", x"10A4B", x"10BCF", x"10D53", x"10ED7", x"1105B",
x"111DE", x"11362", x"114E5", x"11668", x"117EB", x"1196E", x"11AF0", x"11C73",
x"11DF5", x"11F77", x"120F9", x"1227A", x"123FC", x"1257D", x"126FE", x"1287F",
x"12A00", x"12B81", x"12D01", x"12E81", x"13002", x"13181", x"13301", x"13481",
x"13600", x"1377F", x"138FE", x"13A7D", x"13BFC", x"13D7A", x"13EF8", x"14076",
x"141F4", x"14372", x"144EF", x"1466C", x"147E9", x"14966", x"14AE3", x"14C5F",
x"14DDC", x"14F58", x"150D3", x"1524F", x"153CB", x"15546", x"156C1", x"1583C",
x"159B6", x"15B31", x"15CAB", x"15E25", x"15F9F", x"16118", x"16292", x"1640B",
x"16584", x"166FC", x"16875", x"169ED", x"16B65", x"16CDD", x"16E55", x"16FCC",
x"17143", x"172BA", x"17431", x"175A7", x"1771E", x"17894", x"17A0A", x"17B7F",
x"17CF5", x"17E6A", x"17FDF", x"18153", x"182C8", x"1843C", x"185B0", x"18724",
x"18897", x"18A0A", x"18B7E", x"18CF0", x"18E63", x"18FD5", x"19147", x"192B9",
x"1942B", x"1959C", x"1970D", x"1987E", x"199EF", x"19B5F", x"19CCF", x"19E3F",
x"19FAF", x"1A11E", x"1A28D", x"1A3FC", x"1A56B", x"1A6D9", x"1A847", x"1A9B5",
x"1AB23", x"1AC90", x"1ADFD", x"1AF6A", x"1B0D6", x"1B243", x"1B3AF", x"1B51B",
x"1B686", x"1B7F1", x"1B95C", x"1BAC7", x"1BC31", x"1BD9C", x"1BF06", x"1C06F",
x"1C1D9", x"1C342", x"1C4AA", x"1C613", x"1C77B", x"1C8E3", x"1CA4B", x"1CBB3",
x"1CD1A", x"1CE81", x"1CFE7", x"1D14E", x"1D2B4", x"1D419", x"1D57F", x"1D6E4",
x"1D849", x"1D9AE", x"1DB12", x"1DC76", x"1DDDA", x"1DF3E", x"1E0A1", x"1E204",
x"1E366", x"1E4C9", x"1E62B", x"1E78D", x"1E8EE", x"1EA4F", x"1EBB0", x"1ED11",
x"1EE71", x"1EFD1", x"1F131", x"1F290", x"1F3EF", x"1F54E", x"1F6AC", x"1F80B",
x"1F968", x"1FAC6", x"1FC23", x"1FD80", x"1FEDD", x"20039", x"20195", x"202F1",
x"2044C", x"205A8", x"20702", x"2085D", x"209B7", x"20B11", x"20C6A", x"20DC4",
x"20F1D", x"21075", x"211CD", x"21325", x"2147D", x"215D4", x"2172B", x"21882",
x"219D8", x"21B2E", x"21C84", x"21DDA", x"21F2F", x"22083", x"221D8", x"2232C",
x"2247F", x"225D3", x"22726", x"22879", x"229CB", x"22B1D", x"22C6F", x"22DC0",
x"22F11", x"23062", x"231B3", x"23303", x"23452", x"235A2", x"236F1", x"2383F",
x"2398E", x"23ADC", x"23C29", x"23D77", x"23EC4", x"24010", x"2415D", x"242A9",
x"243F4", x"2453F", x"2468A", x"247D5", x"2491F", x"24A69", x"24BB2", x"24CFB",
x"24E44", x"24F8D", x"250D5", x"2521C", x"25364", x"254AB", x"255F1", x"25738",
x"2587E", x"259C3", x"25B08", x"25C4D", x"25D92", x"25ED6", x"26019", x"2615D",
x"262A0", x"263E2", x"26525", x"26666", x"267A8", x"268E9", x"26A2A", x"26B6A",
x"26CAA", x"26DEA", x"26F29", x"27068", x"271A7", x"272E5", x"27423", x"27560",
x"2769D", x"277DA", x"27916", x"27A52", x"27B8D", x"27CC8", x"27E03", x"27F3D",
x"28077", x"281B1", x"282EA", x"28423", x"2855B", x"28693", x"287CB", x"28902",
x"28A39", x"28B6F", x"28CA5", x"28DDB", x"28F10", x"29045", x"2917A", x"292AE",
x"293E2", x"29515", x"29648", x"2977A", x"298AC", x"299DE", x"29B0F", x"29C40",
x"29D71", x"29EA1", x"29FD0", x"2A100", x"2A22F", x"2A35D", x"2A48B", x"2A5B9",
x"2A6E6", x"2A813", x"2A93F", x"2AA6B", x"2AB97", x"2ACC2", x"2ADED", x"2AF17",
x"2B041", x"2B16B", x"2B294", x"2B3BD", x"2B4E5", x"2B60D", x"2B734", x"2B85B",
x"2B982", x"2BAA8", x"2BBCE", x"2BCF3", x"2BE18", x"2BF3D", x"2C061", x"2C184",
x"2C2A8", x"2C3CA", x"2C4ED", x"2C60F", x"2C730", x"2C851", x"2C972", x"2CA92",
x"2CBB2", x"2CCD2", x"2CDF0", x"2CF0F", x"2D02D", x"2D14B", x"2D268", x"2D385",
x"2D4A1", x"2D5BD", x"2D6D8", x"2D7F3", x"2D90E", x"2DA28", x"2DB42", x"2DC5B",
x"2DD74", x"2DE8C", x"2DFA4", x"2E0BC", x"2E1D3", x"2E2EA", x"2E400", x"2E515",
x"2E62B", x"2E740", x"2E854", x"2E968", x"2EA7B", x"2EB8E", x"2ECA1", x"2EDB3",
x"2EEC5", x"2EFD6", x"2F0E7", x"2F1F7", x"2F307", x"2F416", x"2F525", x"2F634",
x"2F742", x"2F850", x"2F95D", x"2FA69", x"2FB76", x"2FC81", x"2FD8D", x"2FE97",
x"2FFA2", x"300AC", x"301B5", x"302BE", x"303C7", x"304CF", x"305D6", x"306DD",
x"307E4", x"308EA", x"309F0", x"30AF5", x"30BFA", x"30CFE", x"30E02", x"30F06",
x"31009", x"3110B", x"3120D", x"3130E", x"3140F", x"31510", x"31610", x"31710",
x"3180F", x"3190D", x"31A0B", x"31B09", x"31C06", x"31D03", x"31DFF", x"31EFB",
x"31FF6", x"320F1", x"321EB", x"322E5", x"323DF", x"324D7", x"325D0", x"326C8",
x"327BF", x"328B6", x"329AC", x"32AA2", x"32B98", x"32C8D", x"32D81", x"32E75",
x"32F69", x"3305C", x"3314E", x"33240", x"33332", x"33423", x"33513", x"33603",
x"336F3", x"337E2", x"338D0", x"339BF", x"33AAC", x"33B99", x"33C86", x"33D72",
x"33E5D", x"33F48", x"34033", x"3411D", x"34207", x"342F0", x"343D8", x"344C0",
x"345A8", x"3468F", x"34775", x"3485B", x"34941", x"34A26", x"34B0A", x"34BEE",
x"34CD2", x"34DB5", x"34E97", x"34F79", x"3505B", x"3513C", x"3521C", x"352FC",
x"353DC", x"354BA", x"35599", x"35677", x"35754", x"35831", x"3590D", x"359E9",
x"35AC4", x"35B9F", x"35C79", x"35D53", x"35E2C", x"35F05", x"35FDD", x"360B5",
x"3618C", x"36262", x"36339", x"3640E", x"364E3", x"365B8", x"3668C", x"3675F",
x"36832", x"36905", x"369D6", x"36AA8", x"36B79", x"36C49", x"36D19", x"36DE8",
x"36EB7", x"36F85", x"37053", x"37120", x"371EC", x"372B8", x"37384", x"3744F",
x"3751A", x"375E4", x"376AD", x"37776", x"3783E", x"37906", x"379CD", x"37A94",
x"37B5A", x"37C20", x"37CE5", x"37DAA", x"37E6E", x"37F31", x"37FF4", x"380B7",
x"38178", x"3823A", x"382FB", x"383BB", x"3847B", x"3853A", x"385F8", x"386B7",
x"38774", x"38831", x"388EE", x"389AA", x"38A65", x"38B20", x"38BDA", x"38C94",
x"38D4D", x"38E06", x"38EBE", x"38F75", x"3902C", x"390E3", x"39199", x"3924E",
x"39303", x"393B7", x"3946B", x"3951E", x"395D0", x"39683", x"39734", x"397E5",
x"39895", x"39945", x"399F4", x"39AA3", x"39B51", x"39BFF", x"39CAC", x"39D58",
x"39E04", x"39EB0", x"39F5B", x"3A005", x"3A0AE", x"3A158", x"3A200", x"3A2A8",
x"3A350", x"3A3F7", x"3A49D", x"3A543", x"3A5E8", x"3A68C", x"3A731", x"3A7D4",
x"3A877", x"3A919", x"3A9BB", x"3AA5D", x"3AAFD", x"3AB9D", x"3AC3D", x"3ACDC",
x"3AD7A", x"3AE18", x"3AEB6", x"3AF52", x"3AFEE", x"3B08A", x"3B125", x"3B1C0",
x"3B259", x"3B2F3", x"3B38B", x"3B424", x"3B4BB", x"3B552", x"3B5E9", x"3B67F",
x"3B714", x"3B7A9", x"3B83D", x"3B8D0", x"3B963", x"3B9F6", x"3BA88", x"3BB19",
x"3BBAA", x"3BC3A", x"3BCCA", x"3BD59", x"3BDE7", x"3BE75", x"3BF02", x"3BF8F",
x"3C01B", x"3C0A6", x"3C131", x"3C1BC", x"3C245", x"3C2CF", x"3C357", x"3C3DF",
x"3C467", x"3C4EE", x"3C574", x"3C5FA", x"3C67F", x"3C703", x"3C787", x"3C80B",
x"3C88E", x"3C910", x"3C992", x"3CA13", x"3CA93", x"3CB13", x"3CB92", x"3CC11",
x"3CC8F", x"3CD0D", x"3CD8A", x"3CE06", x"3CE82", x"3CEFD", x"3CF78", x"3CFF2",
x"3D06B", x"3D0E4", x"3D15C", x"3D1D4", x"3D24B", x"3D2C2", x"3D337", x"3D3AD",
x"3D421", x"3D496", x"3D509", x"3D57C", x"3D5EE", x"3D660", x"3D6D1", x"3D742",
x"3D7B2", x"3D821", x"3D890", x"3D8FE", x"3D96C", x"3D9D9", x"3DA46", x"3DAB1",
x"3DB1D", x"3DB87", x"3DBF1", x"3DC5B", x"3DCC4", x"3DD2C", x"3DD94", x"3DDFB",
x"3DE61", x"3DEC7", x"3DF2C", x"3DF91", x"3DFF5", x"3E059", x"3E0BC", x"3E11E",
x"3E180", x"3E1E1", x"3E241", x"3E2A1", x"3E301", x"3E35F", x"3E3BD", x"3E41B",
x"3E478", x"3E4D4", x"3E530", x"3E58B", x"3E5E5", x"3E63F", x"3E699", x"3E6F1",
x"3E749", x"3E7A1", x"3E7F8", x"3E84E", x"3E8A4", x"3E8F9", x"3E94D", x"3E9A1",
x"3E9F5", x"3EA47", x"3EA99", x"3EAEB", x"3EB3C", x"3EB8C", x"3EBDC", x"3EC2B",
x"3EC79", x"3ECC7", x"3ED14", x"3ED61", x"3EDAD", x"3EDF8", x"3EE43", x"3EE8D",
x"3EED7", x"3EF20", x"3EF68", x"3EFB0", x"3EFF7", x"3F03E", x"3F084", x"3F0C9",
x"3F10E", x"3F152", x"3F196", x"3F1D9", x"3F21B", x"3F25D", x"3F29E", x"3F2DE",
x"3F31E", x"3F35D", x"3F39C", x"3F3DA", x"3F417", x"3F454", x"3F491", x"3F4CC",
x"3F507", x"3F542", x"3F57B", x"3F5B4", x"3F5ED", x"3F625", x"3F65C", x"3F693",
x"3F6C9", x"3F6FF", x"3F734", x"3F768", x"3F79C", x"3F7CF", x"3F801", x"3F833",
x"3F864", x"3F895", x"3F8C5", x"3F8F4", x"3F923", x"3F951", x"3F97F", x"3F9AC",
x"3F9D8", x"3FA04", x"3FA2F", x"3FA59", x"3FA83", x"3FAAC", x"3FAD5", x"3FAFD",
x"3FB24", x"3FB4B", x"3FB71", x"3FB97", x"3FBBC", x"3FBE0", x"3FC04", x"3FC27",
x"3FC4A", x"3FC6B", x"3FC8D", x"3FCAD", x"3FCCD", x"3FCED", x"3FD0C", x"3FD2A",
x"3FD47", x"3FD64", x"3FD81", x"3FD9C", x"3FDB8", x"3FDD2", x"3FDEC", x"3FE05",
x"3FE1E", x"3FE36", x"3FE4D", x"3FE64", x"3FE7A", x"3FE90", x"3FEA5", x"3FEB9",
x"3FECD", x"3FEE0", x"3FEF3", x"3FF05", x"3FF16", x"3FF26", x"3FF36", x"3FF46",
x"3FF55", x"3FF63", x"3FF70", x"3FF7D", x"3FF8A", x"3FF95", x"3FFA1", x"3FFAB",
x"3FFB5", x"3FFBE", x"3FFC7", x"3FFCF", x"3FFD6", x"3FFDD", x"3FFE3", x"3FFE9",
x"3FFEE", x"3FFF2", x"3FFF6", x"3FFF9", x"3FFFB", x"3FFFD", x"3FFFE", x"3FFFF"
);
begin
sine <= std_logic_vector(sine_sum(sine_sum'high-1 downto sine_sum'high-sine'high-1));
index_1 <= UNSIGNED(phase(phase'high downto phase'high-11));
index_2 <= UNSIGNED(phase(phase'high downto phase'high-11))+1;

clk_proc: process(clk)
begin
if rising_edge(clk) then
-- Sage 4 -
sine_sum <= sine_mult_1 + sine_mult_2;

-- Pipeline stage 3 - generate the final value
sine_mult_1 <= sine_1 * frac_1;
sine_mult_2 <= sine_2 * frac_2;

-- Pipeline state 2 - look up the values in the table
case quad_1 is
when "00" => sine_1 <= midrange+mem(to_integer(entry_1));
when "01" => sine_1 <= midrange+mem(to_integer(entry_1));
when "10" => sine_1 <= midrange-mem(to_integer(entry_1));
when others => sine_1 <= midrange-mem(to_integer(entry_1));
end case;

case quad_2 is
when "00" => sine_2 <= midrange+mem(to_integer(entry_2));
when "01" => sine_2 <= midrange+mem(to_integer(entry_2));
when "10" => sine_2 <= midrange-mem(to_integer(entry_2));
when others => sine_2 <= midrange-mem(to_integer(entry_2));
end case;
frac_1 <= frac_max - frac;
frac_2 <= "0" & frac;

-- Pipeline state 1 - break out the phase components into table indexes
quad_1 <= index_1(11 downto 10);
if index_1(10) = '0' then
entry_1 <= index_1(9 downto 0);
else
entry_1 <= table_max - index_1(9 downto 0);
end if;

quad_2 <= index_2(11 downto 10);
if index_2(10) = '0' then
entry_2 <= index_2(9 downto 0);
else
entry_2 <= table_max - index_2(9 downto 0);
end if;

frac <= unsigned(phase(phase'high-12 downto 0));
end if;
end process;
end Behavioral;


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Мур
сообщение Mar 14 2017, 07:11
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 655
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Цитата(Maverick @ Mar 13 2017, 23:57) *
вот например можно и для синтеза

Огромное спасибо! Это более чем.... Шикарно!

...только код с ходу не работает. Частота на выходе отсутствует.
Go to the top of the page
 
+Quote Post
Мур
сообщение Mar 14 2017, 14:32
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 655
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Так и не понял, чего не хватает для генерации?....
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Mar 14 2017, 14:52
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 885
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(Мур @ Mar 14 2017, 17:32) *
Так и не понял, чего не хватает для генерации?....

Умного контроллера управления и принятия решений wink.gif

Это ж просто таблица! Для Вашей задачи к данной табличке нужен еще фазовый детектор, петлевой фильтр и аккумулятор фазы.
Только при этом (при данной схеме) самой таблички sin/cos и не нужно будет. Так как разность фаз определяется исключительно входными импульсами. А точность измерения разности оных - входными шумами и полосой фильтра.

Удачи! Rob.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th March 2017 - 17:51
Рейтинг@Mail.ru


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