《DSP using MATLAB》示例 Example 6.11

上代码:

%
x = -7:7
y = OnesComplement(x, 4)

函数OnesComplement代码:

function [y] = OnesComplement(x, B);
	% Decimal equivalent of Sign-Magnitude format integer
        % to b-bit Ones‘-Complement format conversion
	% ----------------------------------------------------------
	% [y] = ladrfilt(x, B)
        %  x = integer between    -2^(b-1) < x < 2^(b-1)       (sign-magnitude)
	%  y = integer between           0 <= y <= 2^b-1       (1‘s-complement)
	%
        %
    if any((x <= -2^(B-1) | (x >= 2^(B-1))))
        error(‘Numbers must satisfy -2^(B-1) < x < 2^(B-1)‘)
    end
    s = sign(x);                  % sign of x (-1 if x<0,  0 if x=0, 1 if x>0)
    sb = (s < 0);                 % sign-bit  (0 if x>=0, 1 if x<0)
    y = (1-sb) .* x + sb .* bitcmp(abs(x), B);

  运行结果:

时间: 2024-12-21 14:11:03

《DSP using MATLAB》示例 Example 6.11的相关文章

《DSP using MATLAB》Problem 4.11

代码: %% ---------------------------------------------------------------------------- %% Output Info about this m-file fprintf('\n***********************************************************\n'); fprintf(' <DSP using MATLAB> Problem 4.11 \n\n'); banner

《DSP using MATLAB》Problem 5.11

代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output Info about this m-file fprintf('\n***********************************************************\n'); fprintf(' <DSP using MATLAB> Problem 5.11 \n\n'); ba

《DSP using MATLAB》Problem 6.11

代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output Info about this m-file fprintf('\n***********************************************************\n'); fprintf(' <DSP using MATLAB> Problem 6.11 \n\n'); ba

《DSP using MATLAB》Problem 7.11

代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output Info about this m-file fprintf('\n***********************************************************\n'); fprintf(' <DSP using MATLAB> Problem 7.11 \n\n'); ba

DSP using MATLAB 示例Example2.11

上代码: b = [1]; a = [1, -1, 0.9]; n = [-20:120]; h = impz(b,a,n); set(gcf,'Color','white'); %subplot(2,1,1); stem(n,h); title('Impulse Response'); xlabel('n'); ylabel('h(n)'); grid on; x = stepseq(0,-20, 120); s = filter(b,a,x); figure; set(gcf,'Color'

DSP using MATLAB 示例Example3.21

代码: % Discrete-time Signal x1(n) % Ts = 0.0002; n = -25:1:25; nTs = n*Ts; Fs = 1/Ts; x = exp(-1000*abs(nTs)); Ts = 0.001; n = -5:1:5; nTs = n*Ts; Fs = 1/Ts; x = exp(-1000*abs(nTs)); % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = x * sinc(Fs*

DSP using MATLAB示例Example3.18

代码: % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t)); % Continuous-time Fourier Transform Wmax = 2*pi*2000; K = 500; k = 0:1:K; % index array k for frequencies W = k*Wmax/K; % freqency between 0 and +pi, [0,pi] axis divided i

DSP using MATLAB 示例 Example3.19

代码: % Analog Signal Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t)); % Discrete-time Signal Ts = 0.0002; n = -25:1:25; x = exp(-1000*abs(n*Ts)); % Discrete-time Fourier Transform %Wmax = 2*pi*2000; K = 500; k = 0:1:K; w = pi*k/K; % index ar

DSP using MATlAB 示例Example2.10

上代码 % noise sequence 1 x = [3, 11, 7, 0, -1, 4, 2]; nx = [-3:3]; % given signal x(n) [y,ny] = sigshift(x,nx,2); % obtain x(n-2) set(gcf,'Color','white') subplot(2,1,1);stem(nx,x); title('sequence x(n)'); xlabel('n');ylabel('x(n)'); grid on subplot(2,

DSP using MATLAB 示例Example3.7

上代码: x1 = rand(1,11); x2 = rand(1,11); n = 0:10; alpha = 2; beta = 3; k = 0:500; w = (pi/500)*k; % [0,pi] axis divided into 501 points. X1 = x1 * (exp(-j*pi/500)) .^ (n'*k); % DTFT of x1 X2 = x2 * (exp(-j*pi/500)) .^ (n'*k); % DTFT of x2 x = alpha *