Core llvm compile dsp
17 ビュー (過去 30 日間)
古いコメントを表示
AIM: Plotting the pole-zero plot, magnitude and phase spectrum and steadystate response of an LTI System
MATLAB Code: clc; close all; x=[1]; %Numerator of Transfer Function y=[1,-0.9]; %Denominator of Transfer Function subplot(3,1,1) zplane(x,y); %Pole-Zero Plot x=[1]; %Numerator of Transfer Function y=[1,-0.9]; %Denominator of Transfer Function w=linspace(-2*pi,2*pi); H=freqz(x,y,w); magH=abs(H); angH=angle(H); subplot(3,1,2); plot(w/pi,magH); xlabel('Frequency in pi'); ylabel('Magnitude'); title('Magnitude Response'); subplot(3,1,3); plot(w/pi,angH); xlabel('Frequency in Pi'); ylabel('Phase in Pi radians'); title('Phase Response'); x=[1]; %Numerator of Transfer Function y=[1,-0.9]; %Denominator of Transfer Function n=[0:150]; z=cos(0.05*pi*n); a=filter(x,y,z); figure,subplot(2,1,1); stem(n,z); xlabel('n'); ylabel('x[n]'); title('Input Signal'); subplot(2,1,2); stem(n,a); xlabel('n'); ylabel('y[n]'); title('Output Signal');xlabel('n');
AIM: Computing DTFT, 4, 8 and 16 point DFT of 4 point sequence. Verifying Circular time-shifting and circular time-reversal properties for a 9 point sequence
MATLAB Code: clc; close all; %DTFT w=0:0.01:2*pi; Xw=1+exp(-j*w)+exp(-j*2*w)+exp(-j*3*w); %4-point DTFT xn=ones(1,4); N=4; n=0:N-1; k=0:N-1; WN=exp(-j*2*pi/N*n'*k); Xk=xn*WN; subplot(221); plot(w,abs(Xw)); xlabel('Frequency'); ylabel('Magnitude'); title('DTFT'); subplot(222); plot(w,abs(Xw));hold on stem(2*pi*k/N,abs(Xk),'filled'); xlabel('2*pi*k/4'); ylabel('Magnitude'); title('4-point DTFT'); %8-point DTFT clear N; xn=[ones(1,4) zeros(1,4)]; N=8; n=0:N-1; k=0:N-1; WN=exp(-j*2*pi/N*n'*k); Xk=xn*WN; subplot(223); plot(w,abs(Xw));hold on stem(2*pi*k/N,abs(Xk),'filled'); xlabel('2*pi*k/8'); ylabel('Magnitude'); title('8-point DTFT'); %16-point DTFT clear N; xn=[ones(1,4) zeros(1,12)]; N=16; n=0:N-1; k=0:N-1; WN=exp(-j*2*pi/N*n'*k); Xk=xn*WN; subplot(224); plot(w,abs(Xw));hold on stem(2*pi*k/N,abs(Xk),'filled'); xlabel('2*pi*k/16'); ylabel('Magnitude'); title('16-point DTFT');
AIM: Computing 4-point circular convolution and computing linear convolution using fit.
MATLAB Code: (i) clc; close all; N=4; x1=[1 2 2 1]; x2=[1 -1 -1 1]; y=zeros(1,N); %circular convolution for n=0:N-1 m=0:N-1; n1=mod(n-m,N); xs2=x2(n1+1); x12=x1.*xs2; y(n+1)=sum(x12); end n=0:N-1; subplot(131); stem(n,x1,'filled'); xlabel('n'); title('x1(n)'); subplot(132); stem(n,x2,'filled'); xlabel('n'); title('x2(n)'); subplot(133); stem(n,y,'filled'); xlabel('n'); title('y(n)'); (ii) clc; close all; N=4; x1=[1 2 2 1]; Nx1=length(x1); x2=[1 -1 -1 1]; Nx2=length(x2); Ny=Nx1+Nx2-1; x1z=[x1 zeros(1,Ny-Nx1)]; x2z=[x2 zeros(1,Ny-Nx2)]; y=zeros(1,Ny); %circular convolution for n=0:Ny-1 m=0:Ny-1; n1=mod(n-m,Ny); x2s=x2z(n1+1); x12=x1z.*x2s; y(n+1)=sum(x12); end n=0:Ny-1; subplot(131); stem(n,x1z,'filled'); xlabel('n'); title('x1(n)'); subplot(132); stem(n,x2z,'filled'); xlabel('n'); title('x2(n)'); subplot(133); stem(n,y,'filled'); xlabel('n'); title('y(n)');
AIM: Computing LTI response of a system using overlap-add and overlap-save methods
MATLAB Code: (i) %Experiment 4(a) clc; close all; n=0:9; N=6; x=n+1; Lenx= length(x); h=[1 0 -1]; M=length(h); M1=M-1; L=N-M1; hz=[h zeros(1,N-M)]; %Appending N-M Zeros nhz=0:length(hz)-1; xz=[zeros(1,M1) x zeros(1,N-1)]; %Pre Appending M-1 Zeros nxz=0:length(xz)-1; K=ceil((Lenx+M1-1)/L); y=zeros(K,N); for i=0:K-1 xi=xz(i*L+1:i*L+N) for j=0:N-1 m=0:N-1; n1=mod(j-m,N); hs=hz(n1+1); xh=xi.*hs; y(i+1,j+1)=sum(xh); end end y=y(:,M:N)'; %DiscaRding First M-1 Samples y=[y(:)]'; %Concatenating The Output ny=0:length(y)-1; subplot(1,3,1); stem(nxz,xz,'filled'); xlabel('n'); ylabel('x(n)'); title('x(n)'); subplot(1,3,2); stem(nhz,hz,'filled'); xlabel('n'); ylabel('h(n)'); title('h(n)'); subplot(1,3,3); stem(ny,y,'filled'); xlabel('n'); ylabel('y(n)'); title('y(n)');
(ii) close all; clc; n=0:9; N=4; x=n+1; Lenx=length(x); h=[1 0 -1]; M=length(h); M1=M-1; L=N+M-1; hz=[h zeros(1,L-M)]; %Appending N-M Zeros nhz=0:length(hz)-1; K=ceil(Lenx/N); xx=[x zeros(1,N*K-Lenx)]; %Preappending M-1 Zeros nxx=0:length(xx)-1; y=zeros(K,N); for i=0:K-1 xi=xx(i*N+1:N*(i+1)); xr=[xi zeros(1,M1)]; for j=0:L-1 m=0:L-1; n1=mod(j-m,L); hs=hz(n1+1); xh=xr.*hs; y(i+1,j+1)=sum(xh); end end yy=[]; %Adding Last M-1 Samples for i=1:K-1; y(i,:)=[y(i,1:N) y(i,N+1:L)+y(i+1,1:M1)]; end yy=[y(1,1:L) y(2,M:L) y(3,M:L-M1)]; ny=0:length(yy)-1; subplot(1,3,1); stem(nxx,xx,'filled'); xlabel('n'); ylabel('x(n)'); title('x(n)'); subplot(1,3,2); stem(nhz,hz,'filled'); xlabel('n'); ylabel('h(n)'); title('h(n)'); subplot(1,3,3); stem(ny,yy,'filled'); xlabel('n'); ylabel('y(n)'); title('y(n)');
AIM: Computing 100 point DFT of a function with and without padding 90 zeroes
MATLAB Code: clc; close all; n=1:100; k=1:100; x=cos(0.48*pi*n)+cos(0.52*pi*n); %Input Signal xpad=[x(1:10),zeros(1,90)]; %Input Signal With Padded Zeros N=100; %N-point DFT w=2*pi/N; subplot(2,2,1); stem(x); title('Input Signal'); subplot(2,2,2); stem(abs(x*exp(-1i*(n'*w*k)))); title('100-Point DFT of Input Signal'); subplot(2,2,3); stem(xpad); title('Input Signal with Padded Zeros'); subplot(2,2,4); stem(abs(xpad*exp(-1i*(n'*w*k)))); title('10-Point DFT of Input Signal');
1 件のコメント
Les Beckham
2023 年 11 月 20 日
Do you have a question?
Please format your code properly if you expect anyone to be able to read it.
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Get Started with Signal Processing Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!