Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- close all;
- clear all;
- clc;
- t=1;
- fs = 1e3;
- fc=200;
- load('lab08_am.mat');
- x = s2;
- % DEMODULACJA AMPLITUDY
- % generacja współczynników transformatora Hilberta
- % z nałożonym oknem Blackamana
- M=20; % polowa dlugosci filtru
- N=2*M+1;
- n=-M:M;
- %n=1:M;
- h=(2/pi)*sin(pi*n/2).^2./n; %połowa odpowiedzi impulsowej
- %h = [ -h(M:-1:1) 0 h(1:M) ]; %cała odpowiedz impulsowa
- h = (1-cos(pi.*n)) ./ (pi.*n); h(M+1)=0;
- %okno
- w=blackman(N);
- w=w';
- hw=h.*w;
- f=0:1:fs/2;
- H=freqz(h,1,f,fs);
- plot(f,20*log10(abs(H))); pause
- % Zastosowanie filtra Hilberta i filtra różniczkującego
- Nx=1000;
- % fx=20;
- fpr=fs;
- n=0:Nx-1;
- y=conv(x,hw);
- % filtracja sygnału x(n) za pomocą odp. impulsowej hw(n); otrzymujemy Nx+
- yp=y(N:Nx);
- % odcięcie stanów przejściowych (po N−1 próbek) z przodu i z tyłu sygnału y(
- xp=x(M+1:Nx-M); % odcięcie tych próbek z x(n), dla których nie ma poprawnych odpowiedników
- m=sqrt(xp.^2+yp.^2);
- NFFT=2^nextpow2(fs);
- Y=fft(m,NFFT)/fs;
- f=fs/2*linspace(0,1,NFFT/2+1);
- figure(1); grid;
- plot(f,2*abs(Y(1:NFFT/2+1)))
- f1=5;
- f2=50;
- f3=60;
- A1=0.8;
- A2=0.2;
- A3=0.3;
- t=0:1/fs:1-1/fs;
- xr=1+A1*cos(2*pi*f1*t)+A2*cos(2*pi*f2*t)+A3*cos(2*pi*f3*t);
- xr=xr(M+1:1000-M);
- figure(2)
- hold on;
- plot(m);
- plot(xr,'k');
- figure(3)
- hold on
- plot(yp,'b-');
- plot(xp,'r- ');
- hold off;
- figure(4)
- plot(m-xr)
- [A1 A2 A3]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement