Why do I receive a segmentation violation when I pass in an

Illustration
Liana_s01 - 2021-03-13T13:33:14+00:00
Question: Why do I receive a segmentation violation when I pass in an

Why do I receive a segmentation violation when I pass in an INT16/INT32 datatype into the RESAMPLE function in the  Signal Processing Toolbox? When I type     z = int32(50*rand(10000,1)); zrs = resample(z, 10, 625); I receive the following segmenation violation:   ------------------------------------------------------------------------ Segmentation violation detected at Mon Aug 02 10:59:41 2004 ------------------------------------------------------------------------ Configuration: MATLAB Version: 7.0.0.19920 (R14) Operating System: Microsoft Windows XP Window System: Version 5.1 (Build 2600: Service Pack 1) Processor ID: x86 Family 15 Model 2 Stepping 9, GenuineIntel Virtual Machine: Java 1.4.2 with Sun Microsystems Inc. Java HotSpot(TM) Client VM (mixed mode) Default Charset: ibm-5348_P100-1997 Register State: EAX = 21a7c560 EBX = 21a81750 ECX = 227502b0 EDX = 22749168 ESI = 00000010 EDI = 22749168 EBP = 00cdd174 ESP = 00cdd134 EIP = 0e901154 FLG = 00010206 Stack Trace: [0] upfirdnmex.dll:0x0e901154(0x21cbf7a0, 0x2273ca30, 10000, 0x21a7c550) [1] upfirdnmex.dll:0x0e9016a1(1, 0x00cdd8dc, 8, 125) [2] libmex.dll:_mexRunMexFile(1, 0x00cdd8dc, 8, 0x00cdd93c) + 71 bytes [3] libmex.dll:public: virtual void __thiscall Mfh_mex::dispatch_file(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cdd8dc, 8, 0x00cdd93c) + 157 bytes [4] m_dispatcher.dll:public: virtual void __thiscall Mfh_file::dispatch_fh(int,struct mxArray_tag * *,int,struct mxArray_tag * *)(1, 0x00cdd8dc, 8, 0x00cdd93c) + 273 bytes [5] m_interpreter.dll:_inDispatchFromStack(3245, 0x2a690184 "upfirdnmex", 1, 8) + 891 bytes [6] m_interpreter.dll:enum opcodes __cdecl inDispatchCall(char const *,int,int,int,int *,int *)(0x2a690184 "upfirdnmex", 3245, 1, 8) + 111 bytes [7] m_interpreter.dll:int __cdecl inInterp(enum inDebugCheck,int,int,enum opcodes,struct inPcodeNest_tag volatile *)(1, 368, 85, 0) + 2282 bytes  

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

This bug has been fixed in Release 14 Service Pack 2 (R14SP2). For previous releases, please read below for any possible workarounds:
 
The RESAMPLE function in the Signal Processing Toolbox only handles double datatype variables.
 
To work around this issue, try converting the input signal to a double datatype using the DOUBLE function. For example,
 
Instead of
zrs = resample(z, 10, 625);

try, 

z = double(z);

zrs = resample(z, 10, 625);


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!