[an error occurred while processing this directive]
Ответ: Делали SSB по Рабинеру на ADSP....ниже пример надеюсь поможет
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено VadiS! 02 августа 2002 г. 11:30
В ответ на: Кто-нибудь модулировал/демодулировал SSB сигналы сигнальниками? Или сыслок.. отправлено WWW 01 августа 2002 г. 14:35

С преобразованием Гильберта там не совсем проходило
поскольку требовалась широкая полоса.
Если таких ограничений нет
например для стандартного канала ТЧ то
в QEDe считаются коэффиценты для преобразователя
программа это стандартный ФИР фильтр, ну а дальше
небольшая программка


This program implements a Single Sideband (SSB) Modulator using Hilbert
Transform Approach. The Hilbert Transformer is implemented using a
51-tap single precision FIR filter. The coefficients of this filter
are available in FIRDFHT.DAT disk file. The program also uses
subroutine sin to generate cosine and sine components of carrier
frequency at 2 KHz. This subroutine is available in disk file
SINE.DSP.
Assemble FIRDFSSB.DSP, SIN.DSP,
FIRDIRFM.DSPusing ASM21.EXE. Link using LD21.EXE to
produce FIRDFSSB.EXE.
}
.MODULE/RAM/ABS=0/BOOT=0 FIR_SSBM;
.CONST taps=51;
.CONST alpha=25;
.VAR/DM/CIRC data[taps];
.VAR/PM/CIRC fir_coeff[taps];
.VAR/DM/CIRC sig_delay[alpha];
.VAR/PM/CIRC angles[8];
.VAR/DM/CIRC cos_sin[3];
.INIT fir_coeff: ;
.INIT angles: 0x000000, 0x200000, 0x400000, 0x600000,
0x800000, 0xA00000, 0xC00000, 0xE00000;
{------------------------------------------------------------------}
JUMP START; RTI; RTI; RTI; {Reset Vector}
RTI; RTI; RTI; RTI; {Irq2}
RTI; RTI; RTI; RTI; {Sport0 TX}
JUMP SAMPLE; RTI; RTI; RTI; {Sport0 RX}
RTI; RTI; RTI; RTI; {Irq0}
RTI; RTI; RTI; RTI; {Irq1}
RTI; RTI; RTI; RTI; {Timer}
{--- Initialize --------------------------------------------------}
start: CALL CntlReg_inits; { set up SPORTS, TIMER, etc }
I0=^data; M0=1; L0=taps;
I1=^sig_delay; M1=0; L1=alpha;
I2=^cos_sin; L2=2;
M3=1; L3=0;
I4=^fir_coeff; M4=1; L4=taps;
I5=^angles; M5=0; L5=8;
CNTR=taps;
DO zero1 UNTIL CE;
zero1: DM(I0,M0)=0; {Clear the filter delay line buffer}
CNTR=alpha;
DO zero2 UNTIL CE;
zero2: DM(I1,M0)=0; {Clear the signal delay line buffer}
ICNTL=b#00111; { disable IRQ nesting, all IRQs edgeenstv}
IMASK=b#101000; { enable IRQ2 and SPORT0_RX interrupt }
wait: IDLE;
JUMP wait;
{--- Process Input Sample -----------------------------------------}
sample: SR1=RX0; {Get new sample from microphone }
DM(I0,M0)=SR1; {Store sample in data buffer }
MY0=DM(I1,M1); {In phase component of signal in MY0}
DM(I1,M0)=SR1; {Store sample in sig_delay buffer}
AX0=DM(I5,M4); {Angle from angles buffer in AX0}
CALL sin; {Cosine value in AR}
DM(I2,M0)=AR; {Store cosine value in cos_sin buffer}
MR1=AR*MY0; {product of cos and in-phase in MR1}
SR=ASHIFT MR1 BY -1 (HI); {scale by 0.5}
AX0=SR1; {scaled product in AX0}
CNTR=taps-1;
CALL fir_df; {Quadrature component in MR1}
MY0=DM(I2,M1); {Sin value in MY0}
MR1=MR1*MY0; {product of sin and quad in MR1}
SR=ASHIFT MR1 BY -1 (HI); {Scale by 0.5}
AY0=SR1; {Move to AY0}
AR=AX0-AY0; {Upper SSB modulated signal in AR}
IF AV SAT AR;
TX0=AR; {modulated signal to SPORT (to spkr) }
RTI;
{--------------------------------------------------------------}
.ENDMOD;

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru