Aula 2: Exemplos passo-a-passo Fabbryccio Cardoso Marcelo Fernandes Dalton S. Arantes DECOM-FEEC-UNICAMP www.decom.fee.unicamp.br/~cardoso freq = 100 Hz DS P double double Exemplo passo-a-passo FDATool double Sine Wave Digita l Filte r De sign Time Scope Random Source double Lowpass: Equiripple Fpass = 200 Hz Fstop = 250 Hz Gaussiana mean = 0 variance = 1 1
Exercício (Baseado no exemplo da Aula 1) Ainda com a senoide em 100 Hz, como poderíamos"simular o efeito de osciloscópio" com esse experimento? Isto é, visualizar um sinal dinâmico "trigado no scope e não estático, como foi obtido na aula. Também mostrar no scope os sinais de entrada. Com a senoide em 100 Hz, usar diferentes configurações de filtro: 1. Passar por um passa-faixa estreito em torno de 100 Hz. 2. Passar por um rejeita-freqüência em torno de 100 Hz. freq = 100 Hz Exemplo Passa-Faixa DS P seno Referencia FDATool Saida Scope1 Sine Wave Digita l Filter Design Random Source ruido Gaussiana mean = 0 variance = 1 Bandpass: Butterworth Fstop1 = 95 Hz Fpass1 = 99 Hz Fpass2 = 101 Hz Fstop2 = 105 Hz 2
freq = 100 Hz Exemplo Rejeita-Freqüência DS P seno Referencia FDATool Saida Scope1 Sine Wave Digita l Filter De sign Random Source ruido Gaussiana mean = 0 variance = 1 Bandstop: Butterworth Fpass1 = 95 Hz Fstop1 = 99 Hz Fstop2 = 101 Hz Fpass2 = 105 Hz Criando Subsistemas Os subsistemas são blocos que agrupam outros blocos, sendo que todas as variáveis utilizadas dentro de um subsistema são locais. No Simulink o subsistema é criado marcando um conjunto de blocos e utilizando a tecla de atalho Contrl-G. A criação do subsistema também pode ser feita através do menu Edit/Create Subsystem. 3
Máscaras para Subsistemas Qualquer subsistema pode ser associado a uma máscara (mask) com objetivo de otimizar a parametrização. A máscara pode: Definir uma interface gráfica para o subsistema. Otimizar a parametrização. Criar scripts de inicialização. Para definir uma mascara em um subsistema podese Marcar o subsistema alvo e selecionar a opção Mask Subsystem do menu Edit. Marcar o subsistema alvo e utilizar a tecla de atalho Ctrl-M Clicar com o botão direito do mouse no subsistema alvo e selecionar a opção Mask Subsystem Ao clicar na opção Mask Subsistem é apresentada uma janela chamada de Mask Editor. Toda configuração da máscara é feita por esta janela, que possui quatro partes (abas) Icon Parameter Initialization Documentation Criando Máscaras 4
Criando Máscaras - Mask Editor: Icon Icon: Esta aba configura a aparência do bloco do subsistema. O Drawing Commands define um efeito visual no subsistema, neste caso será apresentada uma mensagem dentro do bloco. Exemplos de Drawing Commands Criando Máscaras - Mask Editor: Icon Torna ou não a borda do bloco visível Define a transparência do bloco Permite ou não que o desenho do bloco seja rotacionado Controla a redefinição do desenho do bloco quando alterado seu tamanho 5
Criando Máscaras - Mask Editor: Parameter A aba parameter define os parâmetros que serão utilizados como entrada para o subsistema. Os parâmetros podem ser vistos como variáveis locais do subsistema. Criando Máscaras - Mask Editor: Parameter Para adicionar os parâmetros devese clicar no ícone Add. Prompt: representa o texto associado ao parâmetro Variable: Nome da variável Type: Tipo de entrada da variável 6
Inserindo as Variáveis no Subsistema Toda variável (parâmetro) criada na máscara, do subsistema, é visível e local ao mesmo. Variáveis criadas em uma máscara, de um dado subsistema, não são visíveis em outros subsistemas. Após a criação da máscara e suas variáveis, devese adicionar as variáveis no subsistema. É importante inicializar as variáveis com valores diferentes de zero, caso existam operações de divisão com as mesmas. Máscara seno ruido seno ruido sinal Fonte sinal FDATool sinal Digita l Filte r De sign Saida Scope1 7
Scripts Matlab e Inicialização Criar um script Matlab para inicializar as variáveis do modelo anterior. Model Explorer Interface de Inicialização a partir de Mascáras hws = get_param(bdroot, 'modelworkspace'); assignin(hws, 'L', L); assignin('base', 'Tfinal', Tfinal ); simts = evalin(hws, 'simts'); L = evalin( base, L ); mensagem = ['Potencia TX: ' num2str(ptx) ' W'... '\nmodulaçao: ' modname... '\nno. Portadoras: ' num2str(np)... '\nprefixo Ciclico: ' menpciclico... '\nthroughput: ' num2str(throughput/1e6) ' Mbps' ]; disp(mensagem); 8