Why do I receive a segmentation violation when I pass in an INT16/INT32 datatype into the RESAMPLE function in the Signal Processing Toolbox?

1 view (last 30 days)
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
<snip>

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
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);

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!