ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
613341 Топик полностью
USSR (10.08.2015 07:19, просмотров: 1) ответил Крок на Чиста для сравнения с ДСПИКами изобразите?
Пока без ассемблера:  MATLAB: >> amp = 10.0; % Амплитуда сигнала [В] >> wlo = 1.0e3; % Нижняя частота ГКЧ [Гц] >> whi = 1.0e4; % Верхняя частота ГКЧ [Гц] >> fs = 1.0e5; % Частота дискретизации [Гц] >> tsw = 1.0e-2; % Длительность импульса ГКЧ [сек] >> dt = 1.0/fs; % Период дискретизации [сек] >> ns = tsw/dt; % Общее число семплов в импульсе ГКЧ >> dw = (whi-wlo)/ns; % Приращение частоты на интервале dt [Гц] >> cosw = cos(wlo*dt); % Начальное значения параметра cosw >> sinw = sin(wlo*dt); % Начальное значения параметра sinw >> cosdw = cos(dw*dt); % Параметр cosdw для вычисления нового значения частоты >> sindw = sin(dw*dt); % Параметр sindw для вычисления нового значения частоты >> cost(1) = amp; % Начальные значения семпла cost >> sint(1) = 0.0; % Начальные значения семпла sint >> ii(1)=1; >> for i=2:ns cc = cost(i-1)*cosw; ss = sint(i-1)*sinw; cs = cost(i-1)*sinw; sc = sint(i-1)*cosw; cost(i) = cc-ss; sint(i) = cs+sc; cc = cosw*cosdw; ss = sinw*sindw; cs = cosw*sindw; sc = sinw*cosdw; cosw = cc-ss; % Новые значения параметров частоты sinw = cs+sc; % Новые значения параметров частоты ii(i)=i; end; >> figure(1); >> plot(ii,cost,'r',ii,sint,'b'); >> grid on; >> figure(2); >> plot(cost,sint,'c'); >> grid on; >> С++: // Sweep.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <math.h> #include <stdio.h> // Амплитуда сигнала [В]: double amp = 10.0; // Нижняя частота ГКЧ [Гц]: double wlo = 1.0e3; // Верхняя частота ГКЧ [Гц]: double whi = 1.0e4; // Частота дискретизации [Гц]: double fs = 1.0e5; // Длительность импульса ГКЧ [сек]: double tsw = 1.0e-2; // Период дискретизации [сек]: double dt = 1.0/fs; // Общее число семплов в импульсе ГКЧ: int ns = (int)(tsw/dt+0.5); // Приращения частоты на интервале dt [Гц]: double dw = (whi-wlo)/ns; // Начальные значения параметров: double cosw = cos(wlo*dt); double sinw = sin(wlo*dt); // Параметры для вычисления нового значения частоты: double cosdw = cos(dw*dt); double sindw = sin(dw*dt); // Начальные значения семплов ГКЧ: double cost = amp; double sint = 0.0; double cc,ss,cs,sc; int _tmain(int argc, _TCHAR* argv[]) { int i; // Рекурсия: for (i = 0; i < ns; i++) { printf("cos(%03d) = %+f;\tsin(%03d) = %+f;\n",i,cost,i,sint); cc = cost*cosw; ss = sint*sinw; cs = cost*sinw; sc = sint*cosw; // Новые значения семплов ГКЧ: cost = cc-ss; sint = cs+sc; cc = cosw*cosdw; ss = sinw*sindw; cs = cosw*sindw; sc = sinw*cosdw; // Новые значения параметров частоты: cosw = cc-ss; sinw = cs+sc; } return 0; } Вечером остальное..