Professional Documents
Culture Documents
Banca Examinadora:
____________________________________________________
Professor Dr. Carlos Allan Caballero Petersen – UPF – Orientador
__________________________________________________
Professor Dr. Paulo Sérgio Corrêa Molina – UPF – Examinador
___________________________________________________
Professora Dra. Blanca Rosa Maquera Sosa – UPF - Examinador
Bob Marley
RESUMO
Ω – Ohm;
A – Ampère;
V – Volts
W – Watt;
Ampop – Amplificador Operacional;
RF – Rádio freqüência;
SDR – Software Defined Radio (rádio definido por software);
AM – Amplitude Modulation;
FM – Frequency Modulation;
PM – Phase Modulation;
Hz – Hertz;
FI – Frequência Intermediária;
PC – Personal Computer (computador pessoal);
A/D – Analógico para Digital;
D/A – Digital para Analógico;
RC – Resistor-capacitor;
AGC – Automatic Gain Control (controle automático de ganho);
MSB – Most Significative Bits (bits mais significativos);
LSB – Low Significative Bits (bits menos significativos);
USB – Universal Seria Bus;
DC – Direct conversion (conversão direta);
SSB – Single Side Band (banda lateral única);
SUMÁRIO
1. Estudo Teórico...................................................................................................................... 15
1.1. Arquitetura dos receptores ......................................................................................... 15
1.1.1 Receptores superheterodinos..........................................................................15
1.1.2 Receptores de conversão direta ou homodinos ..............................................17
1.2. Software Defined Radio (SDR) ................................................................................. 18
1.2.1. A freqüência intermediária no SDR[7] ..........................................................20
1.2.2. A rejeição de imagem no SDR .......................................................................21
1.2.3. Circuitos conversores de freqüência em quadratura ......................................22
1.2.3.1. Misturador em quadratura ........................................................................... 22
1.2.3.2. Detector por amostragem em quadratura ........................................................ 23
1.3. Introdução ao detector de produto de Tayloe ............................................................ 24
1.3.1. Funcionamento do detector de Tayloe[2] ......................................................24
1.3.2. Equacionamento do detector de Tayloe .........................................................26
1.3.3. Largura de banda de detecção (banda base) ...................................................38
1.3.4. Largura de banda de detecção (RF) ...............................................................40
2. Receptor de rádio AM para microcomputador ................................................................. 43
2.1. Diagrama de blocos do sistema ................................................................................. 43
2.1.1. Hardware do receptor .....................................................................................44
2.1.2. Software e interface com o usuário ................................................................45
2.2. Desenvolvimento do hardware .................................................................................. 45
2.2.1. Circuito do filtro passa-baixas .......................................................................46
2.2.2. Circuito do detector de produto de Tayloe .....................................................50
2.2.3. Circuito dos amplificadores somadores .........................................................57
2.2.4. Circuito deslocador de fase e somador...........................................................62
2.2.5. Circuito do oscilador local .............................................................................67
2.2.6. Circuito do microcontrolador .........................................................................75
2.2.7. Circuito conversor Paralelo/USB ...................................................................77
2.3. Desenvolvimento do software ................................................................................... 80
2.3.1. Descrição do software de controle do receptor ..............................................81
2.3.2. Instruções de utilização do software de controle do receptor ........................83
2.4. Simulações do hardware do receptor ......................................................................... 84
2.5. Resultados experimentais do hardware do receptor .................................................. 86
2.6. Placa de circuito impresso ......................................................................................... 90
ANEXO A – SIMULAÇÃO NO SOFTWARE PROTEUS .................................................... 94
ANEXO B – EQUAÇÃO GERAL DE FUNCIONAMENTO DO AMPOP[10] ...................... 98
ANEXO C – PROJETO DO CIRCUITO DESLOCADOR DE FASE DE 90º ..................... 100
ANEXO D – FIRMWARE DO MICROCONTROLADOR.................................................. 105
ANEXO E – SOFTWARE DO APLICATIVO DE CONTROLE DO RECEPTOR ............ 110
ANEXO F – CIRCUITO FINAL DO RECEPTOR ............................................................... 129
ANEXO G – LAYOUT DA PLACA DE CIRCUITO IMPRESSO ...................................... 128
ANEXO H – FOTOS DO PROTÓTIPO ................................................................................ 132
INTRODUÇÃO
14
1. Estudo Teórico
15
amplificador de FI. Esse amplificador (pontos F, G e H na Figura 1) basicamente é um
amplificador de rádio freqüência sintonizado em uma única freqüência.
Uma amostra da saída do amplificador de FI é aplicada a seção de controle automático
de ganho (AGC) (pontos L e M na Figura 1). O propósito dessa seção é manter o nível do
sinal de saída mais ou menos constante. O circuito de controle automático de ganho consiste
de um retificador e um filtro para as ondulações que produzem uma tensão de controle DC,
sendo essa tensão de controle DC proporcional ao nível de sinal de entrada de RF (ponto N na
Figura 1).
O estágio de detecção tem a função de recuperar qualquer modulação do sinal de RF
de entrada sendo que o tipo de detector depende do tipo de modulação usado no sinal de
entrada. Sinais modulados em amplitude (AM) geralmente são manipulados por um detector
de envoltória. Sinais de SSB, DSBSC usarão um detector de produto enquanto que sinais de
FM e PM necessitarão de um detector sensível a fase. Os estágios de saída (pontos J e K na
Figura 1) são usados para amplificação dos sinais demodulados.
16
1.1.2 Receptores de conversão direta ou homodinos
17
1.2.Software Defined Radio (SDR)
18
• Programa de computador (software): permite processar matematicamente os sinais
em quadratura (I e Q) vindos do hardware, digitalizados por ele ou ainda digitalizados
pelo conversor A/D da placa de som. Este software realiza uma combinação
matemática adequada dos sinais I e Q de modo a rejeitar a freqüência imagem
indesejável existente na conversão de freqüência, em seguida, efetuando a
demodulação do sinal.
19
1.2.1. A freqüência intermediária no SDR[7]
20
1.2.2. A rejeição de imagem no SDR
Num SDR, os sinais em quadratura que foram gerados pelo circuito conversor de
freqüência em quadratura (e que ambos os sinais I e Q contêm a indesejável freqüência
imagem) são digitalizados pela placa de som do PC, e em seguida processados digitalmente
pelo software SDR, que defasa o sinal Q em 90º negativos, e após soma com o sinal I,
obtendo assim, um único sinal de FI, com a freqüência imagem rejeitada. Após, esse único
sinal de FI poder ser submetido a outros processamentos digitais, como por exemplo, a
demodulação AM, SSB, FM, e DRM dentre outras . Após a demodulação do sinal, o mesmo é
convertido de analógico para digital pela placa de som (conversores DAC) para sinais de
áudio, e conforme o tipo de modulação poderá ser monofônico ou estéreo (canais D e E).
Podemos notar que neste processo, fica evidente que o grau de rejeição da freqüência
imagem dependerá muito da precisão dos dois defasamentos de 90º, um do circuito conversor
de freqüência em quadratura e outro do defasamento em 90º do sinal Q, e ainda, do grau de
amplitude dos sinais I e Q. No próprio software SDR, geralmente é feito um ajuste fino e
automático do grau de rejeição da freqüência imagem.
Mais detalhadamente, o processo de rejeição da freqüência imagem é dado,
matematicamente por:
I (t ) = cos(2.π . f 0 .t ) + cos(2.π . f I .t )
(1.0)
Q(t ) = sin(2.π . f 0 .t ) − sin(2.π . f I .t )
(1.1)
I (t ) = cos(2.π . f 0 .t ) + cos(2.π . f I .t )
(1.2)
Q(t ) = j.sin(2.π . f 0 .t ) − j.sin(2.π . f I .t )
(1.3)
Como:
21
j.sin(α ) = cos(α )
Q ( t ) = cos(2.π . f0 .t ) − cos(2.π . f I .t )
(1.4)
Somando os dois sinais I (t) e Q(t) , teremos um novo sinal, sem a interferência da
freqüência imagem que é dado por:
I ( t ) + Q ( t ) = 2. cos(2.π . f0 .t )
1.2.3.1.Misturador em quadratura
22
( f LO ) , e outra amostra deste sinal pelo oscilador local ( f LO ) defasado de 90º. Deste processo
são gerados os dois sinais de saída em quadratura I (t) e Q(t) . O oscilador local é responsável
pela conversão para a freqüência intermediária. A Figura 5 mostra o diagrama de blocos
simplificado deste circuito conversor de freqüência em quadratura.
23
Figura 6 - Circuito básico de um detector por amostragem em quadratura.[6]
quadratura Q(t) . Alternativamente, para incrementar ganho, o sinal na saída 0º pode ser
somado diferencialmente com o sinal na saída 180º para formar o sinal em fase I (t) , e o sinal
na saída 90º pode ser somado diferencialmente com o sinal na saída 270º para produzir o sinal
em quadratura Q(t) .
25
de saída 90º. A saída 46 representa o valor médio do sinal de entrada durante o terceiro quarto
do período do sinal de entrada e é determinado de saída 180º. A saída 48 representa o valor
médio do sinal de entrada durante o quarto quarto do período do sinal de entrada e é
determinado de saída 270º.
As saídas 42, 44, 46, 48 são as entradas dos amplificadores somadores 50 e 52. O
amplificador somador 50 soma diferencialmente a saída 0º e a saída 180º, assim produzindo o
sinal de banda base em fase I (t) . O amplificador somador 52 soma diferencialmente a saída
90º e a saída 270º, assim produzindo o sinal de banda base em quadratura Q(t) . O sinal de
banda base em fase I (t) 54 e o sinal de banda base em quadratura Q(t) 56 são as entradas de
um circuito de atraso de fase 58 que desloca a fase do sinal de banda base em quadratura Q(t)
. Os sinais resultantes então são somados por um amplificador somador para produzir o sinal
de interesse.
O detector de produto de Tayloe apresenta diversas vantagens em relação a outros
circuitos destinados a este fim. Uma das vantagens é a baixa perda de conversão que pode ser
menor que 1dB, ou seja, em torno de 7dB abaixo dos conversores típicos6. Outra vantagem do
detector de produto de Tayloe é sua banda estreita de detecção. Como já mencionado, o
resistor de entrada e os capacitores (C f ) formam um filtro passa-banda para RF. O efeito do
chaveamento dos quatro capacitores forma um filtro passa-baixa que se torna um filtro passa-
banda em torno da freqüência f1 , sendo que a largura de banda deste filtro passa-banda é
determinada pela correta seleção do resistor e dos capacitores.
26
Figura 8 - Circuito do detector de produto de Tayloe.
Onde, o sinal de banda base z(t) e o sinal da portadora w(t ) são representados por:
z ( t ) = cos(2.π . f m .t )
w ( t ) = cos(2.π . f c .t )
freqüência do sinal de banda base é determinado por f m (message). O sinal da banda base é
um sinal de largura de banda de aproximadamente a 20 k(Hz). O sinal da portadora
portador é um sinal
de RF, ou seja, é um sinal de alta freqüência, quando comparado com a freqüência do sinal de
banda base, sendo assim, podemos dizer que:
f C ≫f m
banda base z(t ) é praticamente constante. Para tal consideração, a freqüência de comutação
27
de cada chave deve ser exatamente igual à freqüência do sinal da portadora e, ainda, devem
ter acionamento seqüencias, ou seja, quando a primeira chave estiver fechada, todas as outras
devem permanecer abertas. Somente quando a primeira chave abrir a segunda chave fechará e
assim por diante. A Figura 9 ilustra a seqüência de comutação das chaves sendo o período da
freqüência de comutação de cada chave o período da freqüência da portadora do sinal de
entrada.
Quando uma das chaves estiver fechada, teremos um circuito RC série sendo que a
mesma permanece fechada durante um período de tempo muito curto determinado por:
1
ton =
4. f C
Da mesma forma, como o período de chaveamento para cada uma das chaves é
determinado pelo período do sinal da portadora, o tempo em que ela permanece aberta é
determinado por:
1
Tch =
fC
28
toff = Tch − ton
1 1
toff = −
f C 4. f C
3
toff =
4. fC
Como:
(
cos ωC .t − π
2 ) = + sin(ω .t )
C
(
cos ωC .t − 3π
2 ) = − sin(ω .t )
C
Teremos:
29
CH 4 → Vi (t ) = − AP . 1 + m.z ( t ) .sin(ωC .t ) (2.3)
Da Figura 11 quando a chave CH1 fechar o capacitor irá começar a se carregar através
do resistor R. Considerando o capacitor inicialmente descarregado, a corrente no instante em
que a chave fechar é dada pelo valor da tensão de entrada dividido pelo resistor R, pois
inicialmente o capacitor em regime de corrente alternada se comporta como um elemento de
baixíssima impedância e pode ser considerado como um curto circuito. Como o período em
que a chave permanece fechada é muito pequeno, o capacitor não irá se carregar totalmente, e
então podemos considerar que a corrente que flui no instante em que a chave é fechada é dada
por:
Vi (t )
i (t ) =
R (2.4)
T
1
VC ( t ) = . i ( t ) .dt
C ∫0
(2.5)
Como já mencionado, cada chave (CH1, CH2, CH3, CH4) permanece fechado por um
período de tempo igual, porém nunca todas ficam fechadas juntas. O tempo em que cada
chave permanece fechada é dado por:
1 π
Ton = =
4. f C 2.ωC
30
CH1 CH2 CH3 CH4
1
0→
4. f C
1 1
→
4. f C 2. f C
1 3
→
2. f C 4. f C
3 1
→
4. f C fC
Tabela 1 – Regime temporal das chaves analógicas.
1
4. f c
1
Vo1 (t ) =
C1
. ∫ i ( t ) .dt
1
0 (2.6)
1
2. f c
1
. i2 ( t ) .dt
C2 ∫1
Vo 2 (t ) =
(2.7)
4. f c
3
4. f c
1
Vo 3 (t ) =
C3
.
1
∫ i ( t ) .dt
3
2. f c
(2.8)
1
fc
1
. i4 ( t ) .dt
C4 ∫3
Vo 4 (t ) =
4. f c
(2.9)
Como os valores dos capacitores C1, C2, C3, C4 devem ter valores iguais,
determinaremos que:
1 2 3 4
31
E, portanto:
1
4. f c
1
Vo1 (t ) =
C
. ∫ i ( t ) .dt
1
0 (3.0)
1
2. fc
1
. i2 ( t ) .dt
C ∫1
Vo 2 (t ) =
(3.1)
4. fc
3
4. fc
1
. i3 ( t ) .dt
C ∫1
Vo3 (t ) =
2. fc
(3.2)
1
fc
1
. i4 ( t ) .dt
C ∫3
Vo 4 (t ) =
4. fc
(3.3)
Portanto, através das equações (3.0), (3.1), (3.2) e (3.3) as tensões nas saídas
correspondentes para cada chave são determinadas, respectivamente:
Para a chave CH1, substituindo a equação (1.6) em (2.4), teremos:
1
2.ωc
AP . 1 + m.z ( t ) .cos (ωC .t )
Vo1 (t ) =
C
. ∫ R
.dt
0 (3.5)
π
AP . 1 + m.z ( t ) 2.ωc
Vo1 (t ) = . ∫ cos (ωC .t ) .dt
R.C 0 (3.5)
32
1
∫ cos ( β .x ) .dx = β .sin( β .x)
AP . 1 + m.z ( t ) 1 π 1
Vo1 (t ) = . .sin( wC . ) − .sin( wC .0)
R.C ωC 2.ωC ωC (3.5)
AP . 1 + m.z ( t ) 1 π 1
Vo1 (t ) = . .sin( ) − .sin(0)
R.C ωC 2 ωC (3.5)
Como:
π
sin = 1;sin ( 0 ) = 0
2
AP . 1 + m.z ( t ) 1
Vo1 (t ) = . − 0
R.C ωC (3.5)
AP . 1 + m.z ( t )
Vo1 (t ) =
ωC .R.C
(3.5)
1
ωc
AP . 1 + m.z ( t ) .sin (ωC .t )
Vo 2 (t ) =
C
. ∫
π R
.dt
2.ωc
(3.7)
π
AP . 1 + m.z ( t ) ωc
Vo 2 (t ) = . ∫ sin (ωC .t ) .dt
R.C π
2.ωc
(3.7)
33
A integral indefinida de uma função senoidal é dada por:
1
∫sin ( β .x ) .dx = − β .cos( β .x)
AP . 1 + m.z ( t ) 1 π 1 π
Vo 2 (t ) = . − .cos ( wC . ) − − .cos ( wC . )
R.C ωC ωC ωC 2.ωC
(3.7)
AP . 1 + m.z ( t ) 1 π 1
Vo 2 (t ) = . .cos ( ) − .cos (π )
R.C ωC 2 ωC (3.7)
Como:
π
cos = 0; cos (π ) = −1
2
AP . 1 + m.z ( t ) 1
Vo 2 (t ) = . 0 − −
R.C ωC (3.7)
AP . 1 + m.z ( t )
Vo 2 (t ) =
ωC .R.C
(3.7)
3.π
1
2.ωc
AP . 1 + m.z ( t ) .cos (ωC .t )
Vo 3 (t ) =
C
. ∫
π R
.dt
ωc
(3.9)
34
3.π
1
∫ cos ( β .x ) .dx = β .sin( β .x)
Como:
3.π
sin = −1;sin (π ) = 0
2
AP . 1 + m.z ( t ) 1
Vo 3 (t ) = . − − 0
R.C ωC (3.9)
AP . 1 + m.z ( t )
Vo 3 (t ) = −
ωC .R.C
(3.9)
35
2.π
AP . 1 + m.z ( t ) ωc
Vo 4 (t ) = − . ∫ sin (ωC .t ) .dt
R.C 3.π
2.ωc
(4.1)
1
∫sin ( β .x ) .dx = − β .cos( β .x)
Como:
3.π
cos = 0;cos ( 2.π ) = 1
2
AP . 1 + m.z ( t ) 1
Vo 4 (t ) = . 0 −
R.C ωC (4.1)
AP . 1 + m.z ( t )
Vo 4 (t ) = −
ωC .R.C (4.1)
36
cos(β ± π ) = ∓ sin(ωC .t )
2
O mesmo ocorre com respeito às equações (3.7) e (4.1). Como cada sinal difere do
outro, respectivamente em 90º, os sinais com defasagem de 180º poderão ser somados,
acrescentando um ganho e resultando em dois novos sinais. Estes sinais resultantes são
denominados de sinal em fase (I) e sinal em quadratura (Q).
Então, se somarmos diferencialmente as equações (3.5) e (3.9), teremos o sinal em
fase (I). Da mesma forma, somando diferencialmente as equações (3.7) e (4.1), teremos o
sinal em quadratura (Q).
I ( t ) = Vo1 (t ) − Vo3 (t )
(4.2)
AP . 1 + m.z ( t ) AP . 1 + m.z ( t )
I (t ) = −−
ω . R.C ω . R.C (4.2)
C C
AP . 1 + m.z ( t ) AP . 1 + m.z ( t )
I (t ) = +
ω . R.C ω . R.C (4.2)
C C
AP . 1 + m.z ( t )
I ( t ) = 2.
ω . R.C (4.2)
C
Q ( t ) = Vo 2 (t ) − Vo 4 (t )
(4.3)
AP . 1 + m.z ( t ) AP . 1 + m.z ( t )
Q (t ) = −−
ω . R.C ω . R.C (4.3)
C C
AP . 1 + m.z ( t ) AP . 1 + m.z ( t )
Q (t ) = +
ωC .R.C ωC .R.C (4.3)
AP . 1 + m.z ( t )
Q ( t ) = 2.
ω . R.C (4.3)
C
Sabemos que:
2.π
ωC =
TC (4.4)
37
Portanto, substituindo a equação (4.4) nas equações (4.2) e (4.3) respectivamente
teremos:
T
I ( t ) = C . Ap .(1 + m.z ( t ))
π .R.C (4.5)
T
Q ( t ) = C . Ap .(1 + m.z ( t ))
π .R.C (4.6)
Analisando os sinais I (t ) e Q(t ) podemos notar que estes representam nada mais do
que o sinal de banda base z(t ) adicionado a uma componente contínua. Estes sinais em
quadratura podem ainda serem defasados separadamente, obtendo-se dois sinais iguais com
mesma fase. Se os mesmos forem somados, como resultado terá um único sinal, no caso o
sinal de banda base desejado.
Um circuito RC, série nada mais é do que um filtro passa-baixa quando em regime
permanente de corrente alternada. Sua função de transferência[1] é dada por:
Y (s) 1
=
X ( s ) 1 + s.R.C
1
f( −3dB ) = ( Hz )
2.π .R.C (4.7)
38
para o sinal de banda base, em um período da portadora, podemos considerar que os quatro
capacitores C1, C2, C3 e C4 encontram-se em paralelo.
Portanto, como os quatro capacitores são iguais, é como se estivéssemos um novo
capacitor que assumirá o valor:
Cresultante = C1 + C 2 + C 3 + C 4
Como:
C1 = C 2 = C 3 = C 4 = C
Teremos que:
Cresultante = C + C + C + C
(4.8)
Cresultante = 4.C
(4.8)
Portanto, do ponto de vista do sinal da banda base podemos considerar que o circuito
resultante é um circuito RC, em que a taxa de atenuação é de 20
⁄é . A freqüência
de corte deste filtro, substituindo a equação (4.8) em (4,7) é dada por:
1
f ( −3dB ) = ( Hz )
2.π .R.(4.C ) (4.9)
BW = f c 2 − f c1
(5.0)
f c 2 = f ( −3 dB )
(5.1)
1
fc 2 = Hz
2.π .R.(4.C ) (5.1)
39
f c1 = 0 Hz
(5.2)
BW = f c 2 − f c1 (5.0)
1
BWBB = −0
2.π .R.(4.C ) (5.3)
1
BWBB = Hz
2.π .R. ( 4.C )
(5.3)
40
O detector de produto de Tayloe pode ser analisado como um filtro de comutação
digital. Isso significa que ele opera como um filtro de alta seletividade e sua largura de banda
de detecção[8] é dada por:
1
BWRF = Hz
π .n.R.C (5.4)
fC
QRF =
BWRF (5.5)
1
BWBB = ( Hz )
2.π .R. ( 4.C )
1
C= (F )
2.π .R.4.BWBB
1
C= (F )
2.π .50.4.3000
C ≃ 265n(F )
41
1
BWRF =
π .n.R.C
BWRF ≃ 6kHz
BWRF = 2.BWBB
fc
QRF =
BWRF
10M
QRF =
6000
QRF ≃ 1670
42
2. Receptor de rádio AM para microcomputador
43
2.1.1. Hardware do receptor
• Circuito defasador somador: este circuito têm a função de defasar os sinais provindos
do circuito dos amplificadores somadores afim de torná-los dois sinais de mesma fase
e após somá-los, disponibilizando na sua saída um único sinal analógico, de áudio.
• Oscilador Local: o oscilador local tem a função de gerar o sinal de freqüência a ser
determinada para controle do chaveamento do detector de produto de Tayloe.
44
• Microcontrolador (Firmware): o microcontrolador é responsável por receber dados
digitais provindos do microcomputador, interpretá-los e ajustar a freqüência do
oscilador local para a freqüência desejada pelo usuário.
• Conversor Paralelo/USB: este circuito é responsável por converter os dados digitais
provindos do microcontrolador de maneira paralela para sinais digitas dentro do
protocolo de comunicação USB.
45
Neste item são apresentados
apresentado os circuitos projetados para cada um dos blocos da parte de
hardware da Figura 13. Para uma melhor compreensão, juntamente estão anexad simulações
ão anexadas
dos circuitos projetados.
R1 = r.R2
R1
Lk = .g k
ωc (5.6)
46
1
Ck = .g k
R1.ωc (5.7)
r1 = 1(Ω)
ωc = 1(rad s )
Para n = ímpar :
r =1
Para k = 1 :
2.ak
gk =
γ
Para k = 2,3,…, n :
4.ak −1.ak
gk =
bk −1.g k −1
( 2.k − 1) .π
ak = sin
2.n
47
k.π
bk = γ 2 + sin 2 ( )
n
β
γ = sinh( )
2.n
passagem, para fins de análise de sua síntese. A Tabela 2 apresenta os valores de g k para
filtros de ordem 1 à 6 com 0,5dB de amplitude de ripple na banda passante.
O receptor, como já mencionado, irá receber sinais AM com largura de banda de:
BW = 1600kHz − 530kHz
BW = 1,07MHz
Como o filtro será do tipo passa-baixa, a freqüência de corte será dada então por:
f c = 1600kHz
48
Como:
ωC = 2.π . fc (rad s )
Então:
ωC ≃ 10,05M (rad s )
R1 = 50Ω
Ap = 0, 5dB
n=5
Da Tabela 2:
g1 = 1, 7058
g 2 = 1, 2296
g3 = 2,5408
g 4 = 1, 2296
g5 = 1, 7058
1
6 (
C1 = C5 = . 1, 7058 ) F
50.10, 05 x10
C1 = C5 ≃ 3, 4nF
1
6 (
C3 = . 2,5408 ) F
50.10, 05 x10
C3 ≃ 5, 0nF
49
Como g 2 = g 4 , da equação (5.6):
50
L2 = L4 = . (1, 2296 ) H
10, 05M
L2 = L4 ≃ 6,1µH
R1 = R2 = 50Ω
C1 = C5 = 3,3nF
C3 = 4, 7 nF
Ls = L4 = 6, 2 µH
50
O circuito integrado das chaves analógicas será o 74HC4066[12] fabricado pela
PHILIPS, escolhido devido a algumas de suas características, onde vale citar seu baixo valor
da resistência da chave quando fechada, pois esta estará em série com a antena, e quanto
menor seu valor menor é a perda por conversão do detector. A Figura 13 mostra o símbolo
lógico das chaves deste circuito integrado juntamente a sua tabela funcional. As principais
razões para escolha deste circuito integrado são:
51
Figura 13 - Símbolo lógico e tabela de acionamento do CI 74HC4066.
52
Figura 14 - Diagrama lógico e tabela funcional do CI 74HC4017N.
f tunning = 1600kHz
ftayloe = 4.1600kHz
f tayloe = 6, 4 MHz
f comutaçãomáx = 1, 6MHz
f sinalmáx = 1, 6 MHz
Estas relações demonstradas acima deixam bem claro que o circuito não apresentará
problemas quando estiver operando na sua freqüência máxima de sintonia. A Figura 15 ilustra
o circuito do detector de produto de Tayloe.
54
Figura 15 - Circuito do detector de produto de Tayloe.
Como podemos ver, após passar por um resistor que no caso é representado pela
impedância da antena o sinal de entrada é ligado diretamente as entradas das quatro chaves,
em paralelo. Quando uma chave é fechada o circuito resultante é um circuito RC, passa-baixa,
e da equação (5.3) calcularemos o valor dos capacitores C1, C2, C3 e C4 para uma largura de
banda determinada.
Um sinal modulado em amplitude tem por definição que o sinal de banda base é um
sinal de voz, então, sua largura de banda será determinada por:
BWBB = 4kHz
Da equação (5.3), o valor dos capacitores C1, C2, C3 e C4 serão dados por:
1
BWBB = Hz
2.π .R. ( 4.C )
55
Onde o resistor é dado pela impedância de entrada da antena e ainda a resistência da
chave quando q mesma encontra-se fechada (ON). Da folha de dados do circuito integrado
74HC4066 a resistência que as chaves apresentam quando se encontram em estado ON é:
Rswitchon ≃ 50Ω
Então:
R = Rswitchon + R _ ANTENAΩ
R = 50 + 50Ω
R = 100Ω
1
C= F
2.π .R.4.BWBB
1
C= F
2.π .100.4.4000
C ≃ 100nF
Sendo que:
C1 = C 2 = C3 = C 4 = C
O circuito integrado 74HC4066 será alimentado com uma tensão de +5V. Na sua folha
de dados, temos que com uma alimentação unipolar, quando a chave estiver fechada, somente
passará sinais por ela que estejam compreendidos entre sua tensão de alimentação, portanto,
será adicionada uma tensão DC ao sinal de entrada vindo da antena, para não ocorrer perda da
parte negativa deste sinal. O acionamento das chaves é realizado pelo circuito integrado
74HC4017, que disponibiliza 10 saídas digitais, sendo que somente são utilizadas 4 destas
saídas e para isto é utilizado o pino de master reset, que é acionado quando ocorre mudando
de nível lógico baixo para nível lógico alto na saída Q4 do mesmo.
56
Como todo o circuito será alimentado com a tensão de +5V, faremos um divisor
resistivo a fim de acrescentar essa tensão contínua na entrada da chave analógica. O circuito é
dado pelos componentes: R1, R2, R3, C5 e C6. Os resistores R1 e R2 formarão um divisor
resistivo com o valor da metade da tensão de alimentação, sendo que os capacitores C5 e C6
terão a função de estabilizar a tensão caso ocorra oscilações na fonte de alimentação do
circuito sendo que a tensão gerada é injetada nas entradas das chaves analógicas através do
resistor R3. Portanto, faremos com que:
R1 = R2 = 6,8k Ω
R3 = 270Ω
C5 = 22 µF
C6 = 100nF
A função deste circuito é realizar a subtração de quatro sinais de banda base provindos
das quatro saídas do detector de produto de Tayloe. Essa soma é realizada através de
amplificadores operacionais. Após uma análise de diversos circuitos integrados de
amplificadores operacionais, por diversos fatores o amplificador operacional utilizado será o
circuito integrado NE5534[13] fabricado pela Philips Semiconductors. Suas principais
características são:
57
Figura 16 - Circuito de um amplificador diferencial.
Rpp R fn R fn
V0 = Vi1. . 1 + − Vi 2 .
Rpi + Rpp
Rni Rni (6.8)
Onde:
R pp → ∞
R pp
lim =1
R pp →∞ R pi + R pp
Como o sinal na entrada negativa está defasado 180º do sinal na entrada positiva,
podemos dizer que:
Vi 2 = −Vi1
58
R fn R fn
V0 = Vi1. 1 + − (−Vi1 ).
Rni Rni
R fn
V0 = Vi1. 1 + 2.
Rni
Portanto, o ganho do circuito como podemos ver na equação (6.9) é dado por:
V0 R fn
Av1 = = 1 + 2.
Vi1 Rni
Como o ganho deste circuito é elevado e o mesmo é determinado pela relação dos
resistores R fn e Rni :
R fn
>> 1
Rni
R fn
V0 ≈ 2. .Vi 2 (6.9)
Rni
R fn
V0 ≈ . (Vi1 − Vi 2 ) (7.0)
Rni
59
Figura 17 - Circuito dos amplificadores diferenciais.
R fn
V0 = . (Vi1 − Vi 2 ) (7.0)
Rni
R fn
Vin − phase = .(0degrees − 180degrees )
Rni (5.8)
R fn
Vquadrature = .(90degrees − 270degrees )
Rni (5.9)
60
Como:
180degrees = −0degrees
(6.0)
270 degrees = −90 degrees
(6.1)
R fn
Vin − phase = .(0 degrees − (−0degrees ))
Rni (6.2)
R fn
Vin − phase = .(0degrees + 0degrees )
Rni (6.2)
R fn
Vin − phase = 2. .(0degrees )
Rni (6.2)
R fn
Vquadrature = .(90 degrees − (−270degrees ))
Rni (6.3)
R fn
Vquadrature = .(90 degrees + 90degrees )
Rni (6.3)
R fn
Vquadrature = 2. .(90degrees )
Rni (6.3)
Das equações (6.2) e (6.3) podemos ver que são gerados os dois sinais em quadratura
e, além do ganho proporcionado pelos resistores R fn e Rni este circuito apresenta ainda um
ganho de valor igual a dois, pois estamos somando diferencialmente dois sinais defasados de
180º. Os valores de R fn , Rni e C fn determinarão o ganho necessário para termos na saída
destes amplificadores um sinal com amplitude ideal para o processamento digital que ocorrerá
no microcontrolador.
61
2.2.4. Circuito deslocador de fase e somador
62
Este circuito é constituído da associação de filtros passa-tudo, que são subdivididos
em duas redes, de forma que o nível de tensão de suas saídas pemaneçam constantes, variando
somente as suas fases, uma em relação à outra, resultando em uma defasagem de 90º entres os
sinais de saída Vo1 e Vo 2 . A fim de minimizar o erro de fase entre as duas redes e melhorar o
desempenho destes filtros um número de seções são cascateados de tal maneira que as
duas redes sigam cada uma com uma faixa de freqüência de interesse distinta a fim de
manter a amplitude constante. Considerando Vin um sinal senoidal:
Vin (t ) = sin(ω.t )
Fasorialmente:
Vin ∠0º
V0º (t ) = cos(ω0 .t )
V90º (t ) = sin(ω0 .t )
Fasorialmente, representando os dois sinais com um único sinal somente com fase
diferente:
V0º (t ) = cos(ω0 .t ) → V0º ∠α º
63
V90º (t ) = sin(ω0 .t ) → V0º ∠α º +90º
Vo1 = V0º ∠α º
Como os sinais Vo1 e Vo 2 tem defasagem de 180º um do outro, podemos dizer que:
Vo1 = V0º ∠α º
Vo 2 = −V0º ∠α º
Estes dois sinais então são somados diferencialmente pelo circuito somador,
resultando em um sinal com o dobro da amplitude, ou seja, incrementando um ganho 2 a este
circuito. O circuito deslocador de fase e somador e mostrado da Figura 19.
64
O circuito implementado mostrado na Figura 19 apresenta duas seções, cada uma com
dois filtros cascateados resultando em n = 4 , sendo tão menor o erro de fase entre os dois
sinais de saída quanto maior a ordem do filtro, representado por n . Na literatura técnica
adota-se R = 10 k Ω com precisão de 1%. Com este valor para R o circuito apresenta ganho
unitário e então é necessário determinar as constantes de tempo determinadas por R1.C1 ,
R2 .C2 , R3 .C3 e R4 .C4 . Para se determinar esses valores foi elaborado um programa no
software Mathematica da Wolfram Research (Anexo D) pelo professor orientador.
A versatilidade do programa permite fazer a estimativa dos valores das constantes de
tempo para rede de diferentes ordens. De posse dos valores das raízes e das constantes,
atribui-se valores aos capacitores para se determinar os valores dos resistores ou vice-versa.
O programa disponibiliza raízes positivas e negativas, sendo as positivas correspondentes a
uma rede e as negativas a outra. Como o sinal de entrada é um sinal de voz, a largura de
banda do circuito de deslocamento de fase e a ordem do filtro respectivamente são
determinadas por:
f1 = 200 Hz
f 2 = 5kHz
n=4
P1 = 11496,1
P2 = 763,41
P3 = -51713,4
P4 = -3434,08
1 1
C1 = = ≃ 8, 7 nF
R1.P1 10k .11496,1
1 1
C2 = = ≃ 130nF
R2 .P2 10k .763,41
65
1 1
C3 = = ≃ 1,9nF
R3 .P3 10k .51713,4
1 1
C4 = = ≃ 29nF
R4 .P4 10k .11496,1
1 1
C8 = = = 3, 2nF
2.π . f c .R15 2.π .5k .10k
66
2.2.5. Circuito do oscilador local
∆ phase . f MCLK
f =
2 28
67
A entrada para o acumulador de fase pode ser selecionada pelos registradores
FREQ0 e FREQ1 sendo estes controlados pelo bit FSELECT. Estes osciladores
controlados numericamente geram inerentemente sinais fase continua evitando
assim qualquer descontinuidade quando se altera o valor da freqüência destes
sinais. Seguinte ao NCO, um offset de fase pode ser adicionado para realizar
modulação de fase, utilizando registradores de fase de 12 bits. O conteúdo de um
desses registradores é adicionar valores de fase nos mais significativos bits do
NCO. O AD9833 possui dois registradores de fase, e a resolução desses
registradores é de 2⁄4096.
• SIN RON: para fazer a saída de um NCO ser útil, ela deve ser convertida para uma
informação de fase dentro de um valor senoidal. Desde que a informação de fase
mapeie diretamente na amplitude, o SIN ROM usa a informação de fase digital
como um endereço para uma tabela, e converte essa informação em amplitude.
Apesar de o NCO conter um acumulador de fase de 28 bits, a saída do NCO é
truncada em 12 bits. Usando a máxima resolução do acumulador de fase é
impraticável e desnecessário uma vez que iria requerer uma tabela com 2"#
entradas. É necessário apenas ter suficiente resolução de fase tal que os erros do
truncamento sejam menores que a resolução do DAC de 10 bits. Isso requer que o
SIN ROM tenha apenas dois bits de resolução de fase a mais que o DAC de 10
bits.
69
registrador de freqüência ao qual será carregado, e deveria ser o mesmo
para as duas escritas.
Quando B28=0 o registrador de freqüência de 28 bits opera como 2
registradores de 14 bits, um contendo os MSB e os outro contendo os LSB.
Isso significa que os 14 bits MSB podem ser alterados independentemente
dos 14 bits LSB e vice e versa. Para alterar os 14 bits MSB ou os 14 bits
LSB uma simples escrita deve ser feita para o endereço do correto
registrador de freqüência. O bit de controle D12 (HLB) informa para o
AD9833 se os bits a serem alterados são os 14 MSB ou os 14 LSB.
D12 HLB Esse bit de controle permite ao usuário carregar continuamente os bits MSB
ou LSB do registrador de freqüência ignorando os 14 bits restantes. Este bit
é útil se não for necessário os 28 bits de resolução. O bit HLB é usado em
conjunto com o bit D12 (B28). Este bit de controle indica se os 14 bits a
serem carregados serão transferidos para os 14 MSB ou para os 14 LSB do
registrador de freqüência. D13 (B28) deve ser setado para “0” para poder
carregar os 14 bits MSB e LSB separadamente. Quando D13(B28)=1, esse
bit de controle é ignorado.
HLB=1 permite uma escrita para os 14 MSB do registrador de freqüência.
HLB=0 permite uma escrita para os 14 LSB do registrador de freqüência.
D11 FSELECT O bit FSELECT define se o registrador acumulador de fase usado será o
FREQ0 ou o FREQ1.
D10 PSELECT O bit PSELECT define se o dado do registrador PHASE0 ou do registrador
PHASE1 é adicionado na saída do acumulador de fase.
D9 Reservado Esse bit deve ser setado para “0”.
D8 RESET RESET=1 reseta os registrador internos para “0”, que corresponde a uma
saída analógica no meio da escala.
RESET=0 desabilita o reset.
D7 SLEEP1 Quando SLEEP1=1 o clock interno MCLK é desabilitado. A saída do DAC
permanecerá com o valor presente, pois o NCO não acumula mais.
Quando SLEEP1=0 o clock interno MCLK está habilitado.
D6 SLEEP12 Quando SLEEP12=1 o DAC é desabilitado. Isto é útil quando o AD9833 é
usado como saída o MSB de dado do DAC.
SLEEP12=0 implica que o DAC está ativo.
D5 OPBITEN A função deste bit, em conjunto com o bit D1 (MODE), é de controlar qual
será a saída no pino VOUT.
Quando OPBITEN=1 a saída do DAC não está disponível no pino VOUT.
70
Por outro lado, o MSB (ou MSB/2) do DAC é conectado para o pino
VOUT. Isso é usado como fonte de clock. O bit DIV2 controla se a saída
será MSB ou MSB/2.
Quando OPBITEN=0 o DAC é conectado a saída VOUT. O bit MODE
determina será da forma senoidal ou rampa o sinal de saída disponível.
D4 Reservado Esse bit deve ser setado para “0”.
D3 DIV2 DIV2 é usado em conjunto com o bit D5 (OPBITEN.
Quando DIV2=1, o MSB do dado do DAC é ligado diretamente para o pino
VOUT.
Quando DIV2=0, o MSB/2 do dado do DAC é disponibilizado no pino
VOUT.
D2 Reservado Esse bit deve ser sempre “0”.
D1 MODE Esse bit é usado em conjunto com o bit OPBITEN (D5). A função desse bit
é controlar que saída terá no pino VOUT quando o DAC do circuito
integrado é conectado a saída VOUT.
Quando MODE=1, o SIN ROM é contornado, resultando em um sinal
rampa na saída do DAC.
Quando MODE=0, o SIN ROM é usado para converter a informação de
fase dentro da informação de amplitude que resulta em um sinal senoidal na
saída VOUT.
D0 Reservado Esse bit deve ser sempre “0”.
Tabela 3 - Descrição dos bits dos registradores de controle.
f MCLK
fout = .FREQREG
228
71
2.π
pout = .PHASEREG
4096
72
freqüência têm resolução de 28 bits, sendo que as primeiras escritas contem os 14 LSB e a
segunda os 14 MSB. Neste modo de operação o bit B28 (D13) deve ser setado para “1”.
Quando escrevermos em um registrador de fase, os bits D15 e D14 são setados para
“1” e o bit D13 identifica qual dos registradores de fase será carregado, pois os registradores
de fase têm resolução de 14 bits. Na Tabela 6 temos a descrição dos bits dos registradores de
fase.
73
Figura 21 - Fluxograma de inicialização do AD9833.
75
O microcontrolador utilizado é o PIC18F2431[15], designado de Microcontrolador
Flash, 28 pinos com tecnologia nano Watt, PWM e A/D de alto desempenho. Abaixo temos
algumas das características principais deste circuito integrado que levaram a sua utilização.
76
Figura 24 - Circuito do microcontrolador.
78
Figura 26 - Diagrama temporal de escrita no FT245BL.
79
Figura 27 - Circuito conversor Paralelo/USB.
2.3.Desenvolvimento do software
80
Figura 28 - Tela do software do receptor AM.
• Record: botão utilizado para iniciar gravação do sinal de áudio que será
recebido. O mesmo é gravado em um arquivo do tipo WAVE;
• Play: botão que disponibiliza o sinal de áudio no objeto scope tal como na saída
de áudio do microcomputador;
81
• Stop: botão que finaliza a recepção do sinal de áudio tanto no objeto scope como
na saída de áudio do microcomputador;
Para utilização deste aplicativo, devem ser seguidos alguns passos, que podem
acarretar no mau funcionamento do dispositivo. São estas:
83
2.4.Simulações do hardware do receptor
f c = 500kHz
f m = 2kHz
Apin = 4mVrms
fin = f c + f m
f in = 500kHz + 2kHz
f in = 502kHz
84
freqüências para baixo (Down converting), ou seja, na saída teremos simplesmente o sinal de
banda base desejado.
4. fc
fout = fin −
4
f out = 502kHz − 500kHz
f out = 2 kHz
Apout ≃ 2, 78mVrms
Apout
Perdaconversão ( dB ) = 20.log( )
Apin
2, 78mVrms
Perdaconversão ( dB ) = 20.log( )
3,98mVrms
Perdaconversão = −3,16dB
Podemos ver que esse valor, poderia será tanto menor quanto menor for à resistência
imposta pela chave, sendo assim, uma variação do detector de Tayloe pode ser realizada, em
que teremos um Double Balanced Tayloe Detector que consiste de duas chaves operando em
paralelo, diminuindo assim, o valor da resistência da chave por dois. Mesmo este valor
encontrado pode ser considerado um valor bem aceitável, pois outros tipos de misturadores,
85
como por exemplo, o misturador a diodos[3], que apresenta uma perda de conversão (-6,2dB)
praticamente duas vezes maior se comparado com o detector de Tayloe.
Na Figura 37 do Anexo A temos as duas saídas (em fase (I) e em quadratura (Q))
provindas do detector de Tayloe, após os amplificadores somadores. O desbalanceamento nas
amplitudes dos dois sinais resultantes foi corrigido usando dois potenciômetros para ajustes
de ganho dos amplificadores operacionais que somam os sinais 0º-180º e 90º-270º.
Na Figura 38 do Anexo A temos os sinais I e Q após o circuito de deslocamento de
fase, onde podemos ver que os mesmos foram defasados de tal maneira a qual podem ser
somados diferencialmente, ou seja, resultando em uma diferença de fase de 180 º. Na Figura
39 do Anexo A temos o sinal de saída resultante do receptor, que é um sinal de banda base de
freqüência igual a 2kHz e amplitude 30, 61mVrms .
Na Figura 40 do Anexo A temos a resposta em freqüência do detector de produto de
Tayloe descrito acima, onde podemos notar que o mesmo se comporta como um filtro passa-
banda de alta seletividade em torno da freqüência de sintonia.
Este sinal descrito acima foi injetado a entrada do receptor, onde após passar por um
filtro um filtro passa segue para o detector de Tayloe e posteriormente aos amplificadores
somadores. Na saída dos amplificadores somadores temos os sinais de banda base em
quadratura. O ajuste de sintonia foi realizado via software no microcomputador utilizando o
aplicativo desenvolvido especialmente para este propósito. Na Figura 29 temos a tela
principal do aplicativo, com os valores utilizados para experimentação.
86
Figura 29 - Valor da freqüência de sintonia para experimentação.
f out = f in − f comutação
f out = 1kHz
Onde a freqüência de comutação corresponde à freqüência mostrada na tela do
aplicativo, na Figura 27. Como os sinais de saída dos amplificadores somadores apresentaram
um leve desbalanceamento, este foi corrigido através de ajustes finos de ganho dos mesmos.
Portanto, as características destes dois sinais (ver Figura 30) foram:
VI = VQ ≃ 280mVrms @ f I = f Q ≃ 1kHz
87
Figura 30 - Sinais de saída I e Q após os amplificadores diferenciais.
88
Após o circuito de deslocamento de fase os sinais agora defasados em 180º seguem
para o circuito somador, que têm a função de somá-los diferencialmente, resultado em apenas
um sinal com o dobro da amplitude. As características deste sinal após o circuito somador
(ver Figura 32) foi:
89
Figura 33 - Resposta em freqüência do hardware do receptor.
90
CONSIDERAÇÕES FINAIS
Após a realização do estudo teórico sobre os rádios definidos por software, nota-se o
motivo pelo qual esta técnica de desenvolvimento de sistemas de telecomunicações está sendo
tão utilizada nos dias atuais, representando significativas vantagens em relação a outras
técnicas convencionais, pois a demodulação dos sinais de RF são realizadas por
microcomputadores através de determinados softwares, reduzindo gradativamente os
componentes de hardware que desenvolveriam este papel em outros tipos de receptores.
91
REFERÊNCIAS BIBLIOGRÁFICAS
[1] JOHSON, David. E. et al. Fundamentos de análise de circuitos elétricos. 4ª Edição. Rio
de Janeiro: Editora Prentice-Hall do Brasil Ltda, 1994.
[2] TAYLOE, Daniel Richard inventor. Motorola Inc., assigne. Product detector and method
therefor. US patente 6,230,000 B1, 8 de maio de 2001.
[3] PETERSEN, Carlos Allan Caballero. Bases de misturadores de radio freqüência para
receptores de rádio. Universidade de Passo Fundo. 2009.
[5] AMARAL, Por Luiz. Considerações sobre os receptores de conversão direta. Disponível
em:<http://tecnociencia.inf.br/comunidade/arqautor/luizamaral/csrc.pdf>
Acesso em: 10 setembro 2009.
[6] MARCO, João K. De. et al. SDRZero, um rádio definido por software. Disponível em:
<http://py2wm.qsl.br/SDR/O-que-eh-um-SDR.html>. Acesso em: 03 setembro 2009.
[8] YOUNGBLOOD, Gerald. A Software defined radio for the Masses, Part 1. Disponível
em: <www.arrl.org/tis/info/pdf/020708qex013.pdf>. Acesso em: 02 outubro 2009.
[9] CARR, Joseph. The technician's radio receiver handbook: wireless and telecommunication
technology. Disponível em: <www.ebookee.com/The-Technician-s-Radio-Receiver-
Handbook_81921.html>. Acesso em: 04 outubro 2009.
92
[10] Amplificadores Operacionais. Disponível em:
http://www.est.ualg.pt/ADEe/disciplinas/ciclo1/ano3/semestre1/meca/material/Amplificadore
s%20Operacionais.pdf. Acesso em: 12 dezembro 2009.
[18] Future Technology Devices Intenational. FT245BL datasheet. 2005. Disponível em:
<http://www.ftdichip.com>.
93
ANEXO A – SIMULAÇÃO NO SOFTWARE PROTEUS
94
Figura 36 - Saídas do detector de produto de Tayloe.
95
Figura 38 - Saída I e Q após circuito de deslocamento de fase.
96
Figura 40 - Largura de banda de detecção do detector de Tayloe.
97
ANEXO B – EQUAÇÃO GERAL DE FUNCIONAMENTO DO AMPOP[10]
AV = ∞
Zi = ∞
Z0 = 0
VP − VN = 0
Portanto, a corrente que entre os terminais positivo e negativo do ampop é dada por:
(VP − VN )
i=
Zi
0
i= =0
∞
98
Como é válido o princípio da superposição, por aplicação da lei das malhas de
Kirchoff temos:
Da 2ª malha:
Vi1
ip =
Rpi + Rpp
(6.5)
Vi 2 R pp .Vi1
in = −
R ni Rni .( R pi + R pp )
(6.7)
Vi1 R R pp .Vi1
V0 = R pp .( ) − fn .(Vi 2 − )
R pi + R pp Rni ( R pi + R pp )
Rpp R fn R fn
V0 = Vi1. . 1 + − Vi 2 .
Rpi + Rpp
Rni Rni (6.8)
99
ANEXO C – PROJETO DO CIRCUITO DESLOCADOR DE FASE DE 90º
Para o circuito base mostrado na Figura 42 onde “n” representa o número de seções
(células) (o circuito mostrado é para n = 6 ; para n = 8 acrescentar mais uma célula acima e
uma baixo; para n = 4 tirar uma célula de cada lado). Para n maior teremos menor erro de
fase, por exemplo, para n = 6 erro de fase δ = 1 º.
Programa:
Clear[d2,d3,f2,f1,n,d7,d9,d11,d13,d45]
f2=5000;
f1=200;
n=Input[Entrar n ];
d7=n;
theta=Pi 90/180;
d9=f2/f1;
k=Sqrt[f2^2-f1^2]/f2;
100
kl=Sqrt[1-k^2];
(* Aproximação de q *)
d19=0.5 (1-Sqrt[kl])/(1+Sqrt[kl]);
d22=d19+2 d19^5+15 d19^9 + 150 d19^13;
(* Cálculo de *)
p0=d45 (Cos[d28]+d22^2 Cos[3 d28]+ d22^6 Cos[5 d28]+d22^8 Cos[7 d28]+d22^10 Cos[9
d28]+d22^12 Cos[11 d28])/(Sin[d28]-d22^2 Sin[3 d28]+d22^6 Sin[5 d28]-d22^8 Sin[7
d28]+d22^10 Sin[9 d28]-d22^12 Sin[11 d28]);
p1=d45 (Cos[d30]+d22^2 Cos[3 d30]+ d22^6 Cos[5 d30]+d22^8 Cos[7 d30]+d22^10 Cos[9
d30]+d22^12 Cos[11 d30])/(Sin[d30]-d22^2 Sin[3 d30]+d22^6 Sin[5 d30]-d22^8 Sin[7
d30]+d22^10 Sin[9 d30]-d22^12 Sin[11 d30]);
p2=d45 (Cos[d32]+d22^2 Cos[3 d32]+ d22^6 Cos[5 d32]+d22^8 Cos[7 d32]+d22^10 Cos[9
d32]+d22^12 Cos[11 d32])/(Sin[d32]-d22^2 Sin[3 d32]+d22^6 Sin[5 d32]-d22^8 Sin[7
d32]+d22^10 Sin[9 d32]-d22^12 Sin[11 d32]);
101
p3=d45 (Cos[d34]+d22^2 Cos[3 d34]+ d22^6 Cos[5 d34]+d22^8 Cos[7 d34]+d22^10 Cos[9
d34]+d22^12 Cos[11 d34])/(Sin[d34]-d22^2 Sin[3 d34]+d22^6 Sin[5 d34]-d22^8 Sin[7
d34]+d22^10 Sin[9 d34]-d22^12 Sin[11 d34]);
p4=d45 (Cos[d36]+d22^2 Cos[3 d36]+ d22^6 Cos[5 d36]+d22^8 Cos[7 d36]+d22^10 Cos[9
d36]+d22^12 Cos[11 d36])/(Sin[d36]-d22^2 Sin[3 d36]+d22^6 Sin[5 d36]-d22^8 Sin[7
d36]+d22^10 Sin[9 d36]-d22^12 Sin[11 d36]);
p5=d45 (Cos[d38]+d22^2 Cos[3 d38]+ d22^6 Cos[5 d38]+d22^8 Cos[7 d38]+d22^10 Cos[9
d38]+d22^12 Cos[11 d38])/(Sin[d38]-d22^2 Sin[3 d38]+d22^6 Sin[5 d38]-d22^8 Sin[7
d38]+d22^10 Sin[9 d38]-d22^12 Sin[11 d38]);
p6=d45 (Cos[d40]+d22^2 Cos[3 d40]+ d22^6 Cos[5 d40]+d22^8 Cos[7 d40]+d22^10 Cos[9
d40]+d22^12 Cos[11 d40])/(Sin[d40]-d22^2 Sin[3 d40]+d22^6 Sin[5 d40]-d22^8 Sin[7
d40]+d22^10 Sin[9 d40]-d22^12 Sin[11 d40]);
p7=d45 (Cos[d42]+d22^2 Cos[3 d42]+ d22^6 Cos[5 d42]+d22^8 Cos[7 d42]+d22^10 Cos[9
d42]+d22^12 Cos[11 d42])/(Sin[d42]-d22^2 Sin[3 d42]+d22^6 Sin[5 d42]-d22^8 Sin[7
d42]+d22^10 Sin[9 d42]-d22^12 Sin[11 d42]);
102
Print[" P6 = ",p6],
Print[" P7 = ",p7]}]],
Raízes para n = 4
Po = -51713.4
P1 = 11496.1
P2 = 763.409
P3 = -3434.08
103
f1 = 200 Hz
f2 = 5000 Hz
104
ANEXO D – FIRMWARE DO MICROCONTROLADOR
//--------------------------------------------------------------------------------------------------------------//
#include <18f2431.h>
#include <string.h>
#include <regs_18f.h>
#use delay(clock=40000000)
#fuses XT,NOWDT,NOLVP,NOMCLR,H4
//------------------------------------Definições de variáveis---------------------------------------------//
#define FSYNC RC4
#define SCLK RC5
#define SDATA RC6
#define RD RA2
#define WR RA1
#define TXE RA0
#define RXF RC3
#define LED_RX RC7
//--------------------------------------Prototipagem das funções-----------------------------------------//
void manipula_variaveis(void);
void inicializa_ad9833(void);
void tunning_word_out(void);
void send_spi(unsigned int16 DATA_SEND);
void habilita_int_externa(void);
//--------------------------------Declaração das variáveis globais--------------------------------------//
char buffer_rx[6];
float f_out_tayloe;
unsigned int8 inc_buffer_rx;
unsigned int32 delta_phase;
unsigned int16 delta_phase_MSB;
unsigned int16 delta_phase_LSB;
unsigned int8 delta_phase_3;
unsigned int8 delta_phase_2;
105
unsigned int8 delta_phase_1;
unsigned int8 delta_phase_0;
unsigned int1 libera_USB_tx=0;
//-------------------------------------------Função principal----------------------------------------------//
void main(void)
{
TRISA=0b11000000;
TRISB=0b00000000;
TRISC=0b00001100;
LED_RX=1;
f_out_tayloe=4*921;
manipula_variaveis();
tunning_word_out();
habilita_int_externa();
while(true);
}
//-----------------------Função para manipulação da variavel delta_phase---------------------------//
void manipula_variaveis(void)
{
delta_phase=f_out_tayloe*10737.41824;
shift_left(&delta_phase,4,0);
shift_left(&delta_phase,4,0);
delta_phase_3=make8(delta_phase,3);
delta_phase_2=make8(delta_phase,2);
delta_phase_1=make8(delta_phase,1);
delta_phase_0=make8(delta_phase,0);
delta_phase_MSB=make16(delta_phase_3,delta_phase_2);
delta_phase_LSB=make16(delta_phase_1,delta_phase_0);
shift_right(&delta_phase_LSB,2,1);
shift_right(&delta_phase_LSB,2,0);
bit_set(delta_phase_MSB,14);
}
//---------------------------------------Função de inicialização do AD9833---------------------------//
106
void inicializa_ad9833(void)
{
send_spi(0b0010000100101000); //Control register
send_spi(delta_phase_LSB); //word LSB em FREQ0
send_spi(delta_phase_MSB); //word MSB em FREQ0
send_spi(0b1000000000000000); //word LSB em FREQ1
send_spi(0b1000000000000000); //word MSB em FREQ1
send_spi(0b1100000000000000); //word MSB em PHASE0
send_spi(0b1110000000000000); //word MSB no em PHASE1
send_spi(0b0010000000101000); //Control register
}
//---------------------------Função de mudança de freqüência no AD9833---------------------------//
void tunning_word_out(void)
{
send_spi(0b0010000000101000);
send_spi(delta_phase_LSB);
send_spi(delta_phase_MSB);
}
//--------------------------Função para envio de dados via protocolo SPI----------------------------//
void send_spi(unsigned int16 DATA_SEND)
{
unsigned int1 bit_for_send;
unsigned int8 num_bit_SPI;
SCLK=1;
FSYNC=1;
FSYNC=0; //liga sincronismo...
for(num_bit_SPI=0;num_bit_SPI<16;num_bit_SPI++)
{
bit_for_send=shift_left(&DATA_SEND,2,0);
SDATA=bit_for_send;
SCLK=0;
SCLK=1;
}
107
FSYNC=1;
}
//--------------------------Função para habilitação da interrupção externa---------------------------//
void habilita_int_externa(void)
{
GIEGIEH=1;
INTEDG0=0;
INT0IE=1;
}
//--------------------------------------Função da interrupção externa-----------------------------------//
#INT_EXT
void recebe_USB(void)
{
float dig_1,dig_2,dig_3,dig_4,dig_5;
INT0IE=0;
LED_RX=0;
TRISB=0b11111111;
RD=0;
buffer_rx[inc_buffer_rx]=PORTB;
RD=1;
TRISB=0b00000000;
if((buffer_rx[inc_buffer_rx])=='*')
{
inc_buffer_rx=0;
dig_1=(buffer_rx[0]-0x30);
dig_2=(buffer_rx[1]-0x30);
dig_3=(buffer_rx[2]-0x30);
dig_4=(buffer_rx[3]-0x30);
dig_5=(buffer_rx[4]-0x30);
f_out_tayloe=4*((dig_1*1000)+(dig_2*100)+(dig_3*10)+(dig_4*1)+(dig_5*0.1));
if(f_out_tayloe>=6400)f_out_tayloe=6400;
if(f_out_tayloe<=2120)f_out_tayloe=2120;
manipula_variaveis();
108
tunning_word_out();
LED_RX=1;
}
else
{
inc_buffer_rx++;
}
INT0IE=1;
}
//--------------------------------------------------------------------------------------------------------------//
109
ANEXO E – SOFTWARE DO APLICATIVO DE CONTROLE DO RECEPTOR
//--------------------------------------------------------------------------------------------------------------//
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "registry.hpp"
#include "ftd2xx.h"
//--------------------------------------------------------------------------------------------------------------//
#pragma package(smart_init)
#pragma link "LPDrawLayers"
#pragma link "SLComponentCollection"
#pragma link "SLScope"
#pragma link "SLStreamTypes"
#pragma link "ALAmplifier"
#pragma link "ALAudioIn"
#pragma link "ALAudioOut"
#pragma link "ALAudioToReal"
#pragma link "ALBasicAudioOut"
#pragma link "ALCommonFilter"
#pragma link "ALCommonFIRFilter"
#pragma link "ALCommonSplitter"
#pragma link "ALLowPass"
#pragma link "ALRemoveDC"
#pragma link "ALCommonMeter"
#pragma link "ALVUMeter"
#pragma link "ALCommonLogger"
#pragma link "ALWaveLogger"
#pragma resource "*.dfm"
#pragma comment(lib,"FTD2XX.lib")
//--------------------------------------------------------------------------------------------------------------//
TForm1 *Form1;
FT_HANDLE ftHandle;
110
FT_STATUS ftStatus;
unsigned int numDev=0;
//--------------------------------------------------------------------------------------------------------------//
AnsiString Str_memory_read;
TIniFile* ini=new TIniFile("c:\\am_receiver.ini");
//--------------------------------------------------------------------------------------------------------------//
void ajusta_digitos_frequencia(unsigned long int frequencia);
void send_data_FT245(void);
void MostraData(void);
//--------------------------------------------------------------------------------------------------------------//
unsigned long int frequencia;
unsigned long int incremento_frequencia;
unsigned int dig_1,dig_2,dig_3,dig_4,dig_5;
unsigned long int estacao_1,estacao_2,estacao_3,estacao_4;
char d1,d2,d3,d4,d5;
char data_to_send[6];
//--------------------------------------------------------------------------------------------------------------//
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
CloseUSBDevice->Enabled=false;
OpenUSBDevice->Enabled=true;
UpFrequency->Enabled=false;
DownFrequency->Enabled=false;
EstationAm1->Enabled=false;
EstationAm2->Enabled=false;
EstationAm3->Enabled=false;
EstationAm4->Enabled=false;
InputDevice->Enabled=false;
Record->Enabled=false;
Play->Enabled=false;
Stop->Enabled=false;
Str_memory_read=ini->ReadString("estacao_1","frequency","<erro>");
111
Edit2->Text=Str_memory_read;
Str_memory_read=ini->ReadString("estacao_2","frequency","<erro>");
Edit3->Text=Str_memory_read;
Str_memory_read=ini->ReadString("estacao_3","frequency","<erro>");
Edit4->Text=Str_memory_read;
Str_memory_read=ini->ReadString("estacao_4","frequency","<erro>");
Edit5->Text=Str_memory_read;
frequencia=atoi(Edit2->Text.c_str())*1000;
ajusta_digitos_frequencia(frequencia);
Label4->Caption=dig_1;
Label6->Caption=dig_2;
Label7->Caption=dig_3;
Label8->Caption=dig_4;
Label10->Caption=dig_5;
CheckBox5->Checked=true;
CheckBox13->Checked=true;
CheckBox14->Checked=true;
ALAudioIn1->Stop();
ALWaveLogger1->Enabled=true;
MostraData();
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::DownFrequencyClick(TObject *Sender)
{
frequencia=frequencia-incremento_frequencia;
if(frequencia<=530000)
{
frequencia=530000;
}
ajusta_digitos_frequencia(frequencia);
Label4->Caption=dig_1;
Label6->Caption=dig_2;
Label7->Caption=dig_3;
112
Label8->Caption=dig_4;
Label10->Caption=dig_5;
send_data_FT245();
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::UpFrequencyClick(TObject *Sender)
{
frequencia=frequencia+incremento_frequencia;
if(frequencia>=1600000)
{
frequencia=1600000;
}
ajusta_digitos_frequencia(frequencia);
Label4->Caption=dig_1;
Label6->Caption=dig_2;
Label7->Caption=dig_3;
Label8->Caption=dig_4;
Label10->Caption=dig_5;
send_data_FT245();
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::EstationAm1Click(TObject *Sender)
{
frequencia=atoi(Edit2->Text.c_str())*1000;
ajusta_digitos_frequencia(frequencia);
Label4->Caption=dig_1;
Label6->Caption=dig_2;
Label7->Caption=dig_3;
Label8->Caption=dig_4;
Label10->Caption=dig_5;
send_data_FT245();
}
//--------------------------------------------------------------------------------------------------------------//
113
void __fastcall TForm1::EstationAm2Click(TObject *Sender)
{
frequencia=atoi(Edit3->Text.c_str())*1000;
ajusta_digitos_frequencia(frequencia);
Label4->Caption=dig_1;
Label6->Caption=dig_2;
Label7->Caption=dig_3;
Label8->Caption=dig_4;
Label10->Caption=dig_5;
send_data_FT245();
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::EstationAm3Click(TObject *Sender)
{
frequencia=atoi(Edit4->Text.c_str())*1000;
ajusta_digitos_frequencia(frequencia);
Label4->Caption=dig_1;
Label6->Caption=dig_2;
Label7->Caption=dig_3;
Label8->Caption=dig_4;
Label10->Caption=dig_5;
send_data_FT245();
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::EstationAm4Click(TObject *Sender)
{
frequencia=atoi(Edit5->Text.c_str())*1000;
ajusta_digitos_frequencia(frequencia);
Label4->Caption=dig_1;
Label6->Caption=dig_2;
Label7->Caption=dig_3;
Label8->Caption=dig_4;
Label10->Caption=dig_5;
114
send_data_FT245();
}
//--------------------------------------------------------------------------------------------------------------//
void ajusta_digitos_frequencia(unsigned long int frequencia)
{
dig_1=(frequencia%10000000)/1000000;
dig_2=(frequencia%1000000)/100000;
dig_3=(frequencia%100000)/10000;
dig_4=(frequencia%10000)/1000;
dig_5=(frequencia%1000)/100;
d1=char(dig_1)+0x30;
d2=char(dig_2)+0x30;
d3=char(dig_3)+0x30;
d4=char(dig_4)+0x30;
d5=char(dig_5)+0x30;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::OpenUSBDeviceClick(TObject *Sender)
{
ftStatus=FT_Open(numDev,&ftHandle);
if(ftStatus==FT_OK)
{
ftStatus=FT_ResetDevice(ftHandle);
FT_Purge(ftHandle,FT_PURGE_RX | FT_PURGE_TX);
CloseUSBDevice->Enabled=true;
OpenUSBDevice->Enabled=false;
UpFrequency->Enabled=true;
DownFrequency->Enabled=true;
EstationAm1->Enabled=true;
EstationAm2->Enabled=true;
EstationAm3->Enabled=true;
EstationAm4->Enabled=true;
InputDevice->Enabled=true;
115
Record->Enabled=true;
Play->Enabled=true;
Stop->Enabled=true;
send_data_FT245();
}
else
{
ShowMessage("Error! Unplugged and plugged USB cable.");
CloseUSBDevice->Enabled=false;
OpenUSBDevice->Enabled=true;
UpFrequency->Enabled=false;
DownFrequency->Enabled=false;
}
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CloseUSBDeviceClick(TObject *Sender)
{
ftStatus=FT_Close(ftHandle);
if(ftStatus == FT_OK)
{
CloseUSBDevice->Enabled=false;
OpenUSBDevice->Enabled=true;
UpFrequency->Enabled=false;
DownFrequency->Enabled=false;
EstationAm1->Enabled=false;
EstationAm2->Enabled=false;
EstationAm3->Enabled=false;
EstationAm4->Enabled=false;
InputDevice->Enabled=false;
Record->Enabled=false;
Play->Enabled=false;
Stop->Enabled=false;
ALAudioIn1->Stop();
116
Play->Enabled=false;
Stop->Enabled=false;
}
else
{
Close();
}
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CloseProgramClick(TObject *Sender)
{
ftStatus=FT_Purge(ftHandle,FT_PURGE_RX|FT_PURGE_TX);
ini->WriteString("estacao_1","frequency",Edit2->Text);
ini->WriteString("estacao_2","frequency",Edit3->Text);
ini->WriteString("estacao_3","frequency",Edit4->Text);
ini->WriteString("estacao_4","frequency",Edit5->Text);
Close();
}
//--------------------------------------------------------------------------------------------------------------//
void send_data_FT245(void)
{
ULONG length_data;
ULONG write_bytes=0;
unsigned int i;
for(i=0;i<=5;i++)
{
switch (i)
{
case(0):data_to_send[0]=d1;break;
case(1):data_to_send[1]=d2;break;
case(2):data_to_send[2]=d3;break;
case(3):data_to_send[3]=d4;break;
117
case(4):data_to_send[4]=d5;break;
case(5):data_to_send[5]='*';break;
}
}
length_data=strlen(data_to_send);
ftStatus=FT_Write(ftHandle,data_to_send,length_data,&write_bytes);
if(ftStatus!=FT_OK)
{
ShowMessage("Error! Close the program.");
}
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked==true)
{
CheckBox2->Checked=false;
CheckBox3->Checked=false;
CheckBox4->Checked=false;
CheckBox5->Checked=false;
}
incremento_frequencia=100;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{
if(CheckBox2->Checked==true)
{
CheckBox1->Checked=false;
CheckBox3->Checked=false;
CheckBox4->Checked=false;
CheckBox5->Checked=false;
}
118
incremento_frequencia=500;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox3Click(TObject *Sender)
{
if(CheckBox3->Checked==true)
{
CheckBox1->Checked=false;
CheckBox2->Checked=false;
CheckBox4->Checked=false;
CheckBox5->Checked=false;
}
incremento_frequencia=1000;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox4Click(TObject *Sender)
{
if(CheckBox4->Checked==true)
{
CheckBox1->Checked=false;
CheckBox2->Checked=false;
CheckBox3->Checked=false;
CheckBox5->Checked=false;
}
incremento_frequencia=5000;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox5Click(TObject *Sender)
{
if(CheckBox5->Checked==true)
{
CheckBox1->Checked=false;
CheckBox2->Checked=false;
119
CheckBox3->Checked=false;
CheckBox4->Checked=false;
}
incremento_frequencia=10000;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::InputDeviceClick(TObject *Sender)
{
ALAudioIn1->Device->ShowDeviceSelctDialog();
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::StopClick(TObject *Sender)
{
ALAudioIn1->Stop();
Play->Enabled=true;
Stop->Enabled=false;
Record->Enabled=true;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::PlayClick(TObject *Sender)
{
ALAudioIn1->Start();
Play->Enabled=false;
Stop->Enabled=true;
Record->Enabled=true;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::ALVUMeter1ValueChange(TObject *Sender,
int AChannel, Real AValue, Real AMin, Real AMax)
{
VUmeter->Position = AValue;
VUmeter->Max = AMax;
}
120
//--------------------------------------------------------------------------------------------------------------//
void MostraData(void)
{
int intDiaSemana;
TDateTime dtHoje;
String strDiaSemana;
dtHoje=Date();
intDiaSemana=DayOfWeek(dtHoje);
switch(intDiaSemana)
{
case 1: strDiaSemana = "Sunday - ";break;
case 2: strDiaSemana = "Monday - ";break;
case 3: strDiaSemana = "Tuesday - ";break;
case 4: strDiaSemana = "Wednesday - ";break;
case 5: strDiaSemana = "Thursday - ";break;
case 6: strDiaSemana = "Friday - ";break;
case 7: strDiaSemana = "Saturday - ";break;
}
Form1->lblData->Caption=strDiaSemana+DateToStr(dtHoje);
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::tmrRelogioTimer(TObject *Sender)
{
lblHora->Caption = TimeToStr(Time());
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::RecordClick(TObject *Sender)
{
ALWaveLogger1->Enabled=true;
Record->Enabled=false;
}
//--------------------------------------------------------------------------------------------------------------//
121
void __fastcall TForm1::CheckBox6Click(TObject *Sender)
{
if(CheckBox6->Checked==true)
{
CheckBox7->Checked=false;
CheckBox8->Checked=false;
CheckBox9->Checked=false;
CheckBox10->Checked=false;
CheckBox11->Checked=false;
CheckBox12->Checked=false;
CheckBox13->Checked=false;
}
ALLowPass1->Frequency=3000;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox7Click(TObject *Sender)
{
if(CheckBox7->Checked==true)
{
CheckBox6->Checked=false;
CheckBox8->Checked=false;
CheckBox9->Checked=false;
CheckBox10->Checked=false;
CheckBox11->Checked=false;
CheckBox12->Checked=false;
CheckBox13->Checked=false;
}
ALLowPass1->Frequency=3500;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox8Click(TObject *Sender)
{
if(CheckBox8->Checked==true)
122
{
CheckBox6->Checked=false;
CheckBox7->Checked=false;
CheckBox9->Checked=false;
CheckBox10->Checked=false;
CheckBox11->Checked=false;
CheckBox12->Checked=false;
CheckBox13->Checked=false;
}
ALLowPass1->Frequency=4000;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox9Click(TObject *Sender)
{
if(CheckBox9->Checked==true)
{
CheckBox6->Checked=false;
CheckBox7->Checked=false;
CheckBox8->Checked=false;
CheckBox10->Checked=false;
CheckBox11->Checked=false;
CheckBox12->Checked=false;
CheckBox13->Checked=false;
}
ALLowPass1->Frequency=4500;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox10Click(TObject *Sender)
{
if(CheckBox10->Checked==true)
{
CheckBox6->Checked=false;
CheckBox7->Checked=false;
123
CheckBox8->Checked=false;
CheckBox9->Checked=false;
CheckBox11->Checked=false;
CheckBox12->Checked=false;
CheckBox13->Checked=false;
}
ALLowPass1->Frequency=5000;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox11Click(TObject *Sender)
{
if(CheckBox11->Checked==true)
{
CheckBox6->Checked=false;
CheckBox7->Checked=false;
CheckBox8->Checked=false;
CheckBox9->Checked=false;
CheckBox10->Checked=false;
CheckBox12->Checked=false;
CheckBox13->Checked=false;
}
ALLowPass1->Frequency=5500;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox12Click(TObject *Sender)
{
if(CheckBox12->Checked==true)
{
CheckBox6->Checked=false;
CheckBox7->Checked=false;
CheckBox8->Checked=false;
CheckBox9->Checked=false;
CheckBox10->Checked=false;
124
CheckBox11->Checked=false;
CheckBox13->Checked=false;
}
ALLowPass1->Frequency=6000;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox13Click(TObject *Sender)
{
if(CheckBox13->Checked==true)
{
CheckBox6->Checked=false;
CheckBox7->Checked=false;
CheckBox8->Checked=false;
CheckBox9->Checked=false;
CheckBox10->Checked=false;
CheckBox11->Checked=false;
CheckBox12->Checked=false;
}
ALLowPass1->Frequency=6500;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox14Click(TObject *Sender)
{
if(CheckBox14->Checked==true)
{
CheckBox15->Checked=false;
CheckBox16->Checked=false;
CheckBox17->Checked=false;
CheckBox18->Checked=false;
CheckBox19->Checked=false;
}
ALAmplifier1->Coefficient=1.0592537251772888788092803732781;
}
125
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox15Click(TObject *Sender)
{
if(CheckBox15->Checked==true)
{
CheckBox14->Checked=false;
CheckBox16->Checked=false;
CheckBox17->Checked=false;
CheckBox18->Checked=false;
CheckBox19->Checked=false;
}
ALAmplifier1->Coefficient=1.1220184543019634355910389464779;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox16Click(TObject *Sender)
{
if(CheckBox16->Checked==true)
{
CheckBox14->Checked=false;
CheckBox15->Checked=false;
CheckBox17->Checked=false;
CheckBox18->Checked=false;
CheckBox19->Checked=false;
}
ALAmplifier1->Coefficient=1.4125375446227543021556078639302;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox17Click(TObject *Sender)
{
if(CheckBox17->Checked==true)
{
CheckBox14->Checked=false;
CheckBox15->Checked=false;
126
CheckBox16->Checked=false;
CheckBox18->Checked=false;
CheckBox19->Checked=false;
}
ALAmplifier1->Coefficient=1.7782794100389228012254211951927;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox18Click(TObject *Sender)
{
if(CheckBox18->Checked==true)
{
CheckBox14->Checked=false;
CheckBox15->Checked=false;
CheckBox16->Checked=false;
CheckBox17->Checked=false;
CheckBox19->Checked=false;
}
ALAmplifier1->Coefficient=2.2387211385683396119549508524657;
}
//--------------------------------------------------------------------------------------------------------------//
void __fastcall TForm1::CheckBox19Click(TObject *Sender)
{
if(CheckBox19->Checked==true)
{
CheckBox14->Checked=false;
CheckBox15->Checked=false;
CheckBox16->Checked=false;
CheckBox17->Checked=false;
CheckBox18->Checked=false;
}
ALAmplifier1->Coefficient=2.8183829312644538191019236991551;
}
//--------------------------------------------------------------------------------------------------------------//
127
ANEXO F – LAYOUT DA PLACA DE CIRCUITO IMPRESSO
128
ANEXO G – CIRCUITO FINAL DO RECEPTOR
129
130
131
ANEXO H – FOTOS DO PROTÓTIPO
132