Usuário:Patricia.m

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
A versão imprimível não é mais suportada e pode ter erros de renderização. Atualize os favoritos do seu navegador e use a função de impressão padrão do navegador.

Projeto DSA

Atividades a desenvolver

  • Unificar o gráfico do espectro de frequencias com o spectrograma
    • Incluir os dois no mesmo plot (2subplots)
  • DSO4000.png
  • Usar escala em dB.
  • Gerar o espectrograma a partir da FFT
  • Variar o tipo de janela usada (Hamming, etc)

Atividades desenvolvidas

9 de maio de 2012
10 de maio de 2012
  • tentativas de criar o espectro a partir das FFTs
11 de maio de 2012
  • ainda tentativas de criar o espectro a partir das FFTs
14 de maio de 2012
  • consegui sobrepor as FFTs, mas de novo uma sobre a outra e não do lado como é o nosso objetivo
Indique os códigos matlab que você modificou/ entre  <syntaxhighlight lang=matlab> .... </syntaxhighlight>. Veja exemplo abaixo. --Marcos Moecke
%-- 16/12/11 15:48 --%
clear all;clf;clc;
n = (-2:10);
y = [1;1;zeros(length(n)-2,1)];
figure(3);
stem(n,ynull,'k');
xlabel('n');
ylabel('ynull[n]');

Na próxima vez eu coloco, como não deu certo, eu voltei para o programa original sem guardar as alterações feitas.

15 de maio de 2012
  • HELP da função spectrogram
16 de maio de 2012
  • Procurando uma maneira de criar o espectro.
  • Entendendo a função spectrogram para tentar implementar o espectro a partir das FFTs.
17 de maio de 2012

Em aula o dia inteiro.

18 de maio de 2012

Sem conexão com o servidor

21 de maio de 2012
  • Gráfico unificado:

Graficounificado.png

Era desse jeito que era pra ficar? A escala do primeiro é tempo, não amplitude.

22 de maio de 2012
23 de maio de 2012
%figure(2)
subplot(211);
x_n = data(:,1);  % pegando apenas um canal
[S,F,T,P] = surf(F,T,10*log10(P'),'edgecolor','none'); axis tight;
%spectrogram(x_n,largura_seg,round(largura_seg*0.9),largura_seg,fs);  
colorbar('location','southoutside');
% usa sempre a janela de Hamming (padrão)
S_mod = abs(P);
view(0,90);
xlabel('frequência (Hz)'); ylabel('tempo'); zlabel('amplitude(dB)');axis tight;

Tentei assim e de outros jeitos parecidos, mas não deu certo. Acho que não dá pra usar aquele vetor [S,F,T,P] sem igualar a função spectrogram.

24 de maio de 2012
  • Fazendo relatório trimestral -> entrega até 27/05.
25 de maio de 2012
  • Minha parte do relatório feita e encaminhada ao professor.
28 de maio de 2012
  • Ainda não consegui montar o espectro usando as FFTs.
29 e 30 de maio de 2012

Apresentação do poster no Fórum.

4 de junho de 2012
  • não consegui ainda fazer o espectro! Tá dificil.
26 de junho de 2012
%%
close all
%%
clear; clc; % limpa as variaveis, fecha e limpa a janela de comandos
[data,fs]=wavread('musica.wav');  % importando data e fs
largura_seg = 2^9;
nfig = 0;
% tipos de janela
tipo (10,:) = '                    '; % inicializa os tipos com vazios
tipo(1,1:size('hamming',2)) = 'hamming';
tipo(2,1:size('flattopwin',2)) = 'flattopwin';
tipo(3,1:size('rectwin',2)) = 'rectwin';
N_fig = 1;

%for nfig = 1:N_fig
nfig = 2; % Define a janela que será usada
% for segmento = [1:floor(size(data,1)/largura_seg)];
   segmento = 44;
        x_n = data(1+(segmento-1)*largura_seg:segmento*largura_seg,1);  % pegando apenas um canal
       
        win=window(eval(['@' tipo(nfig,:)]),largura_seg);
        x_w = x_n.*win;
        t = 1/fs*[1:length(x_w)];
        N_0 = length(x_w);
        X_r = (fft(x_w)/N_0);
        X_rp = abs(X_r(1:N_0/2+1));
        f = linspace(0, fs/2, N_0/2+1)';
        figure1 = figure(1);
        axes1 = axes('Parent',figure1,'Color',[0 0 0]);
        subplot(212);
        P_c(segmento,:) = X_rp;
        %p = plot(f, 20*log10(X_rp)); set(p,'Color',[rand rand rand],'LineWidth',1);
        plot(f, 20*log10(X_rp),'LineWidth',1,'Color',[0.87058824300766 0.490196079015732 0]);
        xlabel('frequência (Hz)'); ylabel('amplitude (dB)'); axis tight;
        xlim([0 fs/2]);
       % xlim([600 1000]); % para ver melhor
       
 %   end
%end
% o espectro é feito aqui:
subplot(211);
%x_n = data(:,1);  % pegando apenas um canal
%[S,F,T,P] = spectrogram(x_n,largura_seg,round(largura_seg*0.9),largura_seg,fs); 
%colorbar('location','southoutside');
% usa sempre a janela de Hamming (padrão)
%S_mod = abs(P);
x_n = data(:,1);
cTF = 1024;
x_n_z = cat(1,x_n,zeros(ceil(length(x_n)/cTF)*cTF-length(x_n),1));
XN_z =reshape(x_n_z,cTF, length(x_n_z)/cTF);
x_n_z = fft(XN_z,cTF,1);
Y = abs(x_n_z);
surf(Y(1:52,:));
%surf(F,T,10*log10(P'),'edgecolor','none'); axis tight;
%view(0,90);
xlabel('frequência (Hz)'); ylabel('tempo'); zlabel('amplitude(dB)');axis tight;
%plot(F,S_mod(1:(largura_seg/2+1),segmento));

Com essa alteração no código o espectro é mostrado da seguinte maneira:

Surf.jpg


julho de 2012
  • Escrevendo o artigo
x_w = x_n.*win;
t = 1/fs*[1:length(x_w)];
N_0 = length(x_w);
X_r = (fft(x_w)/N_0);

Dúvidas que surgiram

Comecei a escrever o artigo, já que não sei o que devo fazer agora e falta pouco para acabar.


23 de agosto de 2012

Artigo enviado ao professor.

Links de auxílio