120 likes | 281 Vues
MATLAB DSP Programs. Raja Rajasakeran Venkat Peddigari Pete Bernardin. Bandpass Filter. close all; clear all; r1 = 0.9; r2 = 0.88; r3=0.9; theta1 = pi/5; theta2 = 3*pi/10; theta3=4*pi/10; p1 = r1*cos(theta1) + i*r1*sin(theta1); p2 = r1*cos(theta2) + i*r2*sin(theta2);
E N D
MATLAB DSP Programs Raja Rajasakeran Venkat Peddigari Pete Bernardin
Bandpass Filter close all; clear all; r1 = 0.9; r2 = 0.88; r3=0.9; theta1 = pi/5; theta2 = 3*pi/10; theta3=4*pi/10; p1 = r1*cos(theta1) + i*r1*sin(theta1); p2 = r1*cos(theta2) + i*r2*sin(theta2); p3 = r3*cos(theta3) + i*r3*sin(theta3); p2 = r2*cos(theta2) + i*r2*sin(theta2); !aroots = [p1,conj(p1),p2,conj(p2), p3, conj(p3)]; aroots = [p2,conj(p2), p3, conj(p3)]; a = poly(aroots); b = [1 zeros(1,18) -1]; b1 = [1]; [h,w] = freqz(b1,a); freqzplot(h,w, 'mag'); figure; freqzplot(h,w,'squared');
Kaiser Bessel Window clear all; close all; N=61; w31 = window(@kaiser,N,1); w33 = window(@kaiser,N,3); w35 = window(@kaiser,N,5); w37 = window(@kaiser,N,7); plot(1:N,[w31, w33, w35, w37]); axis([1 N 0 1]); legend('beta=1','beta = 3', 'beta=5', 'beta=7'); figure; a=[1]; [fw31,f] = freqz(w31,a); [fw33,f] = freqz(w33,a); [fw35,f] = freqz(w35,a); [fw37,f] = freqz(w37,a); freqzplot([fw31,fw33,fw35,fw37],f, 'mag'); legend('beta=1','beta = 3', 'beta=5', 'beta=7');
Time Domain Windows clear all; close all; N=61; w = window(@blackmanharris,N); w1 = window(@hamming,N); w2 = window(@gausswin,N,2.5); w3 = window(@kaiser,N,5); w4 = window(@tukeywin,N,0.5); plot(1:N,[w1,w3,w4]); axis([1 N 0 1]); legend('Hamming','Kaiser', 'Tukey'); figure; a=[1]; [fw,f] = freqz(w,a); [fw1,f] = freqz(w1,a); [fw2,f] = freqz(w2,a); [fw3,f] = freqz(w3,a); [fw4,f] = freqz(w4,a); freqzplot([fw1,fw3,fw4],f, 'mag'); legend('Hamming','Kaiser', 'Tukey');
100% Duty 50% Duty 12.5% Duty DFT of Square Waves, 3 Duties close all; clear all; x = ones(1,16); y = fft(x,16); my = abs(y)/16; ay = angle(y); stem(my); figure; y1 = fft (x,32)/16; my1 = abs(y1); stem(my1); y2= fft (x,128); figure; stem (abs(y2));
1 2 4 3 Notch Filters clear all; close all; a = [1 -1.2726 0.81]; b = [1 -1.414 1]; [H, W] = freqz(b,a); figure; freqzplot(H,W,'linear'); title ('Pole-zero Notch Filter - Mag'); figure; freqzplot(H,W); title ('Pole-zero Notch Filter - dB'); a1 = [1]; b1 = [1 -1.414 1]; [H1, W] = freqz(b1,a1); figure; freqzplot(H1,W,'linear'); title ('All zero Notch Filter - Mag'); figure; freqzplot(H1,W); title ('All zero Notch Filter - dB');
Resonators title ('Pole-zero Resonator r=0.99, theta = pi/4 - Mag'); figure; freqzplot(H,W); title ('Pole-zero Resonator r=0.99, theta = pi/4- dB'); r = 0.9; theta = pi/4; a = [1 -2*r*theta r^2]; b = 1; [H, W] = freqz(b,a); figure; freqzplot(H,W,'linear'); title ('Resonator r=0.9, theta = pi/4 - Mag'); figure; freqzplot(H,W); title (' Resonator r=0.9, theta = pi/4- dB'); r = 1.0; theta = pi/4; a = [1 -2*r*theta r^2]; b = 1; [H, W] = freqz(b,a); figure; freqzplot(H,W,'linear'); title ('Oscillator, theta = pi/4 - Mag'); figure; freqzplot(H,W); title ('Oscillator, theta = pi/4- dB'); clear all; close all; r = 0.99; theta = pi/4; a = [1 -2*r*theta r^2]; b = 1; [H, W] = freqz(b,a); figure; freqzplot(H,W,'linear'); title ('Resonator r=0.99, theta = pi/4 - Mag'); figure; freqzplot(H,W); title (' Resonator r=0.99, theta = pi/4- dB'); r = 0.95; theta = pi/4; a = [1 -2*r*theta r^2]; b = 1; [H, W] = freqz(b,a); figure; freqzplot(H,W,'linear'); title ('Resonator r=0.95, theta = pi/4 - Mag'); figure; freqzplot(H,W); title (' Resonator r=0.95, theta = pi/4- dB'); r = 0.99; theta = pi/4; a = [1 -2*r*theta r^2]; b = [1 0 -1] [H, W] = freqz(b,a); figure; freqzplot(H,W,'linear'); 1
2 3 4 5 6 7 8 10 9 Resonators (continued)
1 2 4 3 Comb Filters clear all; close all; a = [1 -1]; b = [1 0 0 0 0 0 0 0 0 0 0 -1]; b = b/11; [H, W] = freqz(b,a); figure; freqzplot(H,W,'linear'); title ('Comb Filter M=10 - Mag'); figure; freqzplot(H,W); title ('Comb Filter M=10 - dB'); bz = zeros (1,54); a1 = [1 0 0 0 0 -1]; b1 = [1 [bz] -1]; [H, W] = freqz(b1,a1); figure; freqzplot(H,W,'linear'); title ('LM Comb Filter L = 5 M=10 - Mag'); figure; freqzplot(H,W); title ('LM Comb Filter L = 5 M=10 - dB');
Welch Periodogram PSD close all; clear all; t = 0:.001:4.096; x = sin(2*pi*50*t) + sin(2*pi*120*t); stdev = 2; y = x + stdev*randn(size(t)); figure; plot(y(1:50)) title('Noisy time domain signal') FS = 1000.; % Sampling Rate % 1 section NFFT = 4096; Noverlap = 0 figure; pwelch(y, 4096, Noverlap, NFFT, FS) % 16 overlapping sections NFFT = 512; Noverlap = 256 figure; pwelch(y, 512, Noverlap, NFFT, FS) % 32 overlapping sections NFFT = 256; Noverlap = 128 figure; pwelch(y, 256, Noverlap, NFFT, FS) ¼ Hz Res 1 2 Time 2 Hz Res 4 Hz Res 3 4